home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Games / NetHack 3.1.3 / source / src / monst.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-01  |  118.8 KB  |  2,561 lines  |  [TEXT/R*ch]

  1. /*    SCCS Id: @(#)monst.c    3.1    93/05/26          */
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #include "config.h"
  6. #include "permonst.h"
  7. #include "monsym.h"
  8. #include "eshk.h"
  9. #include "vault.h"
  10. #include "epri.h"
  11.  
  12. #ifdef MUSE
  13. #define MARM(x,y) x /* x is usually 10 */
  14. #else
  15. #define MARM(x,y) y
  16. #endif
  17.  
  18. #define NO_ATTK     { 0, 0, 0, 0 }
  19.  
  20. #define WT_ELF        800
  21. #define WT_DRAGON    4500
  22.  
  23. #ifdef C
  24. #undef C
  25. #endif
  26. #ifdef TEXTCOLOR
  27. #include "color.h"
  28. #define C(color)    color
  29. #define HI_DOMESTIC    WHITE        /* use for player + friendlies */
  30. #define HI_LORD     MAGENTA
  31. #else
  32. #define C(color)
  33. #endif
  34.  
  35. void NDECL(monst_init);
  36. /*
  37.  *    Entry Format:        (from permonst.h)
  38.  *
  39.  *    name, symbol (S_* defines),
  40.  *    difficulty level, move rate, armor class, magic resistance,
  41.  *    alignment, creation/geno flags (G_* defines),
  42.  *    6 * attack structs ( type , damage-type, # dice, # sides ),
  43.  *    weight (WT_* defines), nutritional value, extension length,
  44.  *    sounds made (MS_* defines), physical size (MZ_* defines),
  45.  *    resistances, resistances conferred (both MR_* defines),
  46.  *    3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
  47.  *    symbol color (C(x) macro)
  48.  */
  49.  
  50. #ifndef SPLITMON_2
  51. NEARDATA struct permonst playermon = {        /* used by weapons bonus code */
  52.     "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
  53.     { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  54.       NO_ATTK, NO_ATTK, NO_ATTK },
  55.     WT_HUMAN, 400, PL_NSIZ, MS_HUMANOID, MZ_HUMAN, 0, 0,
  56.     M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  57.     M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC)
  58. },    *uasmon = &playermon;
  59. #endif /* SPLITMON_2 */
  60.  
  61. /*
  62.  *    Rule #1:    monsters of a given class are contiguous in the
  63.  *            mons[] array.
  64.  *
  65.  *    Rule #2:    monsters of a given class are presented in ascending
  66.  *            order of strength.
  67.  *
  68.  *    Rule #3:    monster frequency is included in the geno mask;
  69.  *            the frequency can be from 0 to 7.  0's will also
  70.  *            be skipped during generation.
  71.  *
  72.  *    Rule #4:    monster subclasses (e.g. giants) should be kept
  73.  *            together, unless it violates Rule 2.  NOGEN monsters
  74.  *            won't violate Rule 2.
  75.  *
  76.  * Guidelines for color assignment:
  77.  *
  78.  *    * Use the same color for all `growth stages' of a monster (ex.
  79.  *      little dog/big dog, baby naga/full-grown naga.
  80.  *
  81.  *    * Use colors given in names wherever possible. If the class has `real'
  82.  *      members with strong color associations, use those.
  83.  *
  84.  *    * Favor `cool' colors for cold-resistent monsters, `warm' ones for
  85.  *      fire-resistent ones.
  86.  *
  87.  *    * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  88.  *      bee, kobold lord, &c.).
  89.  *
  90.  *    * Subject to all these constraints, try to use color to make as many
  91.  *      distinctions as the / command (that is, within a monster letter
  92.  *      distinct names should map to distinct colors).
  93.  *
  94.  * The aim in assigning colors is to be consistent enough so a player can
  95.  * become `intuitive' about them, deducing some or all of these rules
  96.  * unconsciously. Use your common sense.
  97.  */
  98.  
  99. #ifndef SPLITMON_2
  100. NEARDATA struct permonst mons[] = {
  101. /*    ants    */
  102.     { "giant ant",    S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
  103.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  104.         NO_ATTK, NO_ATTK, NO_ATTK },
  105.       10, 10, 0, MS_SILENT, MZ_TINY, 0, 0,
  106.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  107.       M2_HOSTILE, 0, C(BROWN) },
  108.     { "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
  109.       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK,
  110.         NO_ATTK, NO_ATTK, NO_ATTK },
  111.       1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  112.       M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS, M2_HOSTILE | M2_FEMALE,
  113.       0, C(YELLOW) },
  114.     { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  115.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
  116.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  117.       20, 5, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
  118.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  119.       M2_HOSTILE, 0, C(BLUE) },
  120.     { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
  121.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BITE, AD_FIRE, 2, 4 },
  122.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  123.       30, 10, 0, MS_SILENT, MZ_TINY, MR_FIRE, MR_FIRE,
  124.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  125.       M2_HOSTILE, 0, C(RED) },
  126.     { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
  127.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  128.         NO_ATTK, NO_ATTK, NO_ATTK },
  129.       10, 10, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
  130.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
  131.       M2_HOSTILE, 0, C(BLACK) },
  132.     { "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
  133.       { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK,
  134.         NO_ATTK, NO_ATTK, NO_ATTK },
  135.       1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  136.       M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS,
  137.       M2_HOSTILE | M2_FEMALE | M2_PRINCE, 0, C(HI_LORD) },
  138. /*    blobs    */
  139.     { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
  140.       { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK,
  141.         NO_ATTK, NO_ATTK, NO_ATTK },
  142.       30, 10, 0, MS_SILENT, MZ_TINY,
  143.       MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_SLEEP | MR_STONE,
  144.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  145.       M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER, 0, C(GREEN) },
  146.     { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
  147.       { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  148.         NO_ATTK, NO_ATTK, NO_ATTK },
  149.       200, 100, 0, MS_SILENT, MZ_SMALL,
  150.       MR_SLEEP | MR_POISON, MR_POISON,
  151.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  152.       M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
  153.     { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
  154.       { { AT_TUCH, AD_PLYS, 2, 4 }, { AT_NONE, AD_PLYS, 1, 4 },
  155.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  156.       600, 150, 0, MS_SILENT, MZ_LARGE,
  157.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_ACID |
  158.       MR_STONE, MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP,
  159.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
  160.       M1_ACID, M2_WANDER | M2_HOSTILE | M2_NEUTER,
  161.       0, C(CYAN) },
  162. /*    cockatrice    */
  163.     { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
  164.       { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
  165.         { AT_NONE, AD_STON, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  166.       30, 30, 0, MS_HISS, MZ_SMALL,
  167.       MR_POISON | MR_STONE, MR_POISON | MR_STONE,
  168.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS, M2_HOSTILE, 0, C(YELLOW) },
  169. /*    dogs and other canines    */
  170.     { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
  171.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  172.         NO_ATTK, NO_ATTK, NO_ATTK },
  173.       300, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
  174.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  175.     { "werejackal", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
  176.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
  177.         NO_ATTK, NO_ATTK, NO_ATTK },
  178.       300, 250, 0, MS_BARK, MZ_SMALL, MR_POISON, 0,
  179.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  180.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  181.     { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
  182.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  183.         NO_ATTK, NO_ATTK, NO_ATTK },
  184.       150, 150, 0, MS_BARK, MZ_SMALL, 0, 0,
  185.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  186.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  187.     { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
  188.       { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK,
  189.         NO_ATTK, NO_ATTK, NO_ATTK },
  190.       400, 200, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  191.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  192.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  193.     { "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
  194.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  195.         NO_ATTK, NO_ATTK, NO_ATTK },
  196.       800, 250, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  197.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_STRONG | M2_DOMESTIC,
  198.       0, C(HI_DOMESTIC) },
  199.     { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
  200.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  201.         NO_ATTK, NO_ATTK, NO_ATTK },
  202.       500, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
  203.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  204.     { "werewolf", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
  205.       { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK,
  206.         NO_ATTK, NO_ATTK, NO_ATTK },
  207.       500, 250, 0, MS_BARK, MZ_MEDIUM, MR_POISON, 0,
  208.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  209.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  210.     { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
  211.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  212.         NO_ATTK, NO_ATTK, NO_ATTK },
  213.       850, 350, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  214.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  215.       M2_HOSTILE, 0, C(BROWN) },
  216.     { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
  217.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
  218.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  219.       700, 300, 0, MS_BARK, MZ_LARGE, MR_COLD, MR_COLD,
  220.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  221.       M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
  222.     { "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
  223.       (G_HELL | G_GENO | G_SGROUP | 1),
  224.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
  225.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  226.       200, 200, 0, MS_BARK, MZ_SMALL,
  227.       MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  228.       M2_HOSTILE, 0, C(RED) },
  229.     { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
  230.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
  231.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  232.       600, 300, 0, MS_BARK, MZ_MEDIUM,
  233.       MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  234.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  235. #ifdef CHARON
  236.     { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
  237.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
  238.         { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  239.       1000, 350, 0, MS_BARK, MZ_LARGE, MR_FIRE, MR_FIRE,
  240.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  241.       M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_MALE, 0,
  242.       C(RED) },
  243. #endif
  244. /*    eyes    */
  245.     { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
  246.       { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK,
  247.         NO_ATTK, NO_ATTK, NO_ATTK },
  248.       10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
  249.       M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD,
  250.       M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  251.     { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
  252.       { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK,
  253.         NO_ATTK, NO_ATTK, NO_ATTK },
  254.       10, 10, 0, MS_SILENT, MZ_SMALL, MR_COLD, MR_COLD,
  255.       M1_FLY | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  256.       M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
  257. /*    felines     */
  258.     { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
  259.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  260.         NO_ATTK, NO_ATTK, NO_ATTK },
  261.       150, 150, 0, MS_MEW, MZ_SMALL, 0, 0,
  262.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  263.       M2_WANDER | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  264.     { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
  265.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  266.         NO_ATTK, NO_ATTK, NO_ATTK },
  267.       200, 200, 0, MS_MEW, MZ_SMALL, 0, 0,
  268.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  269.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  270.     { "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
  271.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  272.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  273.       600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
  274.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  275.       M2_HOSTILE, 0, C(BROWN) },
  276.     { "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
  277.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  278.         NO_ATTK, NO_ATTK, NO_ATTK },
  279.       250, 250, 0, MS_MEW, MZ_SMALL, 0, 0,
  280.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  281.       M2_STRONG | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  282.     { "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
  283.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  284.         { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK },
  285.       600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
  286.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  287.       M2_HOSTILE, 0, C(YELLOW) },
  288. /*    gremlins    */
  289.     { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
  290.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  291.         { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 },
  292.         NO_ATTK, NO_ATTK },
  293.       100, 20, 0, MS_LAUGH, MZ_SMALL, MR_POISON, 0,
  294.       M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, 0, C(GREEN) },
  295. /*    humanoids    */
  296.     { "hobbit", S_HUMANOID, 1, 9, MARM(10,7), 0, 6, (G_GENO | 2),
  297.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  298.         NO_ATTK, NO_ATTK, NO_ATTK },
  299.       500, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
  300.       M1_HUMANOID, M2_COLLECT, 0, C(GREEN) },
  301.     { "dwarf", S_HUMANOID,    2, 6, MARM(10,4), 10, 4, (G_GENO | 3),
  302.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  303.         NO_ATTK, NO_ATTK, NO_ATTK },
  304.       900, 300, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  305.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  306.       M2_DWARF | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  307.       0, C(RED) },
  308.     { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
  309.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  310.         NO_ATTK, NO_ATTK, NO_ATTK },
  311.       1250, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
  312.       M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
  313.     { "dwarf lord", S_HUMANOID,  4, 6, MARM(10,4), 10, 5, (G_GENO | 2),
  314.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  315.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  316.       900, 300, 0, MS_HUMANOID, MZ_HUMAN,
  317.       0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  318.       M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
  319.       M2_COLLECT, 0, C(BLUE) },
  320.     { "dwarf king", S_HUMANOID,  6, 6, MARM(10,4), 20, 6, (G_GENO | 1),
  321.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  322.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  323.       900, 300, 0, MS_HUMANOID, MZ_HUMAN,
  324.       0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  325.       M2_DWARF | M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS |
  326.       M2_COLLECT, 0, C(HI_LORD) },
  327.     { "mind flayer", S_HUMANOID, 9, 12, 5, 90, -8, (G_GENO | 1),
  328.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_TENT, AD_DRIN, 2, 1 },
  329.         { AT_TENT, AD_DRIN, 2, 1 }, { AT_TENT, AD_DRIN, 2, 1 },
  330.         { AT_TENT, AD_DRIN, 2, 1 }, NO_ATTK },
  331.       1450, 400, 0, MS_HISS, MZ_HUMAN,
  332.       0, 0, M1_HUMANOID | M1_FLY | M1_SEE_INVIS | M1_OMNIVORE,
  333.       M2_HOSTILE | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  334.       0, C(MAGENTA) },
  335. /*    imps & other minor demons/devils */
  336.     { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
  337.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  338.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  339.       100, 100, 0, MS_SILENT, MZ_SMALL,
  340.       MR_SLEEP | MR_POISON, 0, M1_POIS, M2_HOSTILE | M2_STALK, 0, C(RED) },
  341.     { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
  342.       { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK,
  343.         NO_ATTK, NO_ATTK, NO_ATTK },
  344.       60, 100, 0, MS_SILENT, MZ_TINY,
  345.       MR_SLEEP | MR_POISON, MR_SLEEP | MR_POISON,
  346.       M1_FLY | M1_POIS, M2_STALK, 0, C(GREEN) },
  347.     { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
  348.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  349.         NO_ATTK, NO_ATTK, NO_ATTK },
  350.       20, 10, 0, MS_CUSS, MZ_TINY, 0, 0,
  351.       M1_REGEN, M2_WANDER | M2_STALK, 0, C(RED) },
  352.     { "lemure", S_IMP, 3, 3, 7, 0, -7,
  353.       (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
  354.       { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  355.         NO_ATTK, NO_ATTK, NO_ATTK },
  356.       150, 100, 0, MS_SILENT, MZ_MEDIUM, MR_SLEEP | MR_POISON, MR_SLEEP,
  357.       M1_POIS | M1_REGEN, M2_HOSTILE | M2_WANDER | M2_STALK | M2_NEUTER,
  358.       0, C(BROWN) },
  359.     { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
  360.       { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
  361.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  362.       200, 200, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  363.       M1_REGEN, M2_STALK, 0, C(BLUE) },
  364.     { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
  365.       { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
  366.         NO_ATTK, NO_ATTK, NO_ATTK },
  367.       300, 200, 0, MS_SQAWK, MZ_SMALL, MR_POISON, MR_POISON,
  368.       M1_TPORT | M1_TPORT_CNTRL, M2_STALK, 0, C(CYAN) },
  369. /*    jellies     */
  370.     { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
  371.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
  372.         NO_ATTK, NO_ATTK, NO_ATTK },
  373.       50, 20, 0, MS_SILENT, MZ_MEDIUM,
  374.       MR_COLD | MR_POISON, MR_COLD | MR_POISON,
  375.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  376.       M1_MINDLESS | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  377.     { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
  378.       { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK,
  379.         NO_ATTK, NO_ATTK, NO_ATTK },
  380.       50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
  381.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  382.       M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
  383.       0, C(GREEN) },
  384.     { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
  385.       { { AT_ENGL, AD_ACID, 3, 6 }, { AT_NONE, AD_ACID, 3, 6 },
  386.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  387.       50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
  388.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  389.       M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
  390.       0, C(BROWN) },
  391. /*    kobolds     */
  392.     { "kobold", S_KOBOLD,  0, 6, MARM(10,7), 0, -2, (G_GENO | 1),
  393.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  394.         NO_ATTK, NO_ATTK, NO_ATTK },
  395.       400, 100, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  396.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(BROWN) },
  397.     { "large kobold", S_KOBOLD,  1, 6, MARM(10,6), 0, -3, (G_GENO | 1),
  398.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  399.         NO_ATTK, NO_ATTK, NO_ATTK },
  400.       450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  401.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(RED) },
  402.     { "kobold lord", S_KOBOLD,  2, 6, MARM(10,5), 0, -4, (G_GENO | 1),
  403.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  404.         NO_ATTK, NO_ATTK, NO_ATTK },
  405.       500, 200, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  406.       M1_HUMANOID | M1_POIS,
  407.       M2_HOSTILE | M2_LORD | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
  408.     { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
  409.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  410.         NO_ATTK, NO_ATTK, NO_ATTK },
  411.       450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  412.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_MAGIC, 0, C(HI_ZAP) },
  413. /*    leprechauns    */
  414.     { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
  415.       { { AT_CLAW, AD_SGLD, 1, 2 }, NO_ATTK, NO_ATTK,
  416.         NO_ATTK, NO_ATTK, NO_ATTK },
  417.       60, 30, 0, MS_LAUGH, MZ_TINY, 0, 0,
  418.       M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_GREEDY, 0, C(GREEN) },
  419. /*    mimics    */
  420.     { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
  421.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK,
  422.         NO_ATTK, NO_ATTK, NO_ATTK },
  423.       300, 200, 0, MS_SILENT, MZ_MEDIUM, MR_ACID, 0,
  424.       M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  425.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  426.       M2_HOSTILE, 0, C(BROWN) },
  427.     { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
  428.       { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK,
  429.         NO_ATTK, NO_ATTK, NO_ATTK },
  430.       600, 400, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
  431.       M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  432.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  433.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  434.     { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
  435.       { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
  436.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  437.       800, 500, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
  438.       M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  439.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  440.       M2_HOSTILE | M2_STRONG, 0, C(HI_LORD) },
  441. /*    nymphs    */
  442.     { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  443.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  444.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  445.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  446.       0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
  447.       0, C(GREEN) },
  448.     { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  449.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  450.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  451.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  452.       0, 0, M1_HUMANOID | M1_TPORT | M1_SWIM,
  453.       M2_HOSTILE | M2_FEMALE | M2_COLLECT, 0, C(BLUE) },
  454.     { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  455.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  456.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  457.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  458.       0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
  459.       0, C(BROWN) },
  460. /*    orcs    */
  461.     { "goblin", S_ORC,  0, 6, MARM(10,6), 0, -3, (G_GENO | 2),
  462.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  463.         NO_ATTK, NO_ATTK, NO_ATTK },
  464.       400, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
  465.       M1_HUMANOID, M2_ORC | M2_COLLECT, 0, C(GRAY) },
  466.     { "hobgoblin", S_ORC,  1, 9, MARM(10,6), 0, -4, (G_GENO | 2),
  467.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  468.         NO_ATTK, NO_ATTK, NO_ATTK },
  469.       1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0,
  470.       M1_HUMANOID, M2_ORC | M2_STRONG | M2_COLLECT, 0, C(BROWN) },
  471.     /* "orc" for zombie corpses only; they don't get created at random */
  472.     { "orc", S_ORC,  1, 9, MARM(10,6), 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
  473.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  474.         NO_ATTK, NO_ATTK, NO_ATTK },
  475.       850, 150, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  476.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  477.       0, C(RED) },
  478.     { "hill orc", S_ORC, 2, 9, MARM(10,6), 0, -4, (G_GENO | G_LGROUP | 2),
  479.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  480.         NO_ATTK, NO_ATTK, NO_ATTK },
  481.       1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  482.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  483.       0, C(YELLOW) },
  484.     { "Mordor orc", S_ORC, 3, 5, MARM(10,6), 0, -5, (G_GENO | G_LGROUP | 1),
  485.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  486.         NO_ATTK, NO_ATTK, NO_ATTK },
  487.       1200, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  488.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  489.       0, C(BLUE) },
  490.     { "Uruk-hai", S_ORC, 3, 7, MARM(10,5), 0, -4, (G_GENO | G_LGROUP | 1),
  491.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  492.         NO_ATTK, NO_ATTK, NO_ATTK },
  493.       1300, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  494.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  495.       0, C(BLACK) },
  496.     { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
  497.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  498.         NO_ATTK, NO_ATTK, NO_ATTK },
  499.       1000, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  500.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  501.       0, C(HI_ZAP) },
  502.     { "orc-captain", S_ORC, 5, 5, MARM(10,4), 0, -5, (G_GENO | 1),
  503.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  504.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  505.       1350, 350, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  506.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  507.       0, C(HI_LORD) },
  508. /*     piercers    */
  509.     { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 4),
  510.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  511.         NO_ATTK, NO_ATTK, NO_ATTK },
  512.       200, 200, 0, MS_SILENT, MZ_SMALL, 0, 0,
  513.       M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
  514.       M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
  515.     { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 2),
  516.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  517.         NO_ATTK, NO_ATTK, NO_ATTK },
  518.       400, 300, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  519.       M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
  520.       M1_CARNIVORE, M2_HOSTILE, 0, C(CYAN) },
  521. /*    quadrupeds (generic)    */
  522.     { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
  523.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
  524.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  525.       400, 100, 0, MS_SILENT, MZ_LARGE, 0, 0,
  526.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
  527.     { "mumak", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
  528.       { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
  529.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  530.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  531.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  532.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  533.     { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
  534.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
  535.         { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  536.       1200, 500, 0, MS_IMITATE, MZ_LARGE, 0, 0,
  537.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  538.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  539.     { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
  540.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  541.         NO_ATTK, NO_ATTK, NO_ATTK },
  542.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  543.       M1_CLING | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  544.       M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
  545.     { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
  546.       { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  547.         NO_ATTK, NO_ATTK, NO_ATTK },
  548.       2650, 650, 0, MS_SILENT, MZ_LARGE, 0, 0,
  549.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  550.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  551.     { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
  552.       { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
  553.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  554.       3800, 800, 0, MS_SILENT, MZ_LARGE, 0, 0,
  555.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  556.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  557. /*    rodents     */
  558.     { "sewer rat",    S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
  559.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  560.         NO_ATTK, NO_ATTK, NO_ATTK },
  561.       20, 12, 0, MS_SQEEK, MZ_TINY, 0, 0,
  562.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  563.       M2_HOSTILE, 0, C(BROWN) },
  564.     { "giant rat",    S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
  565.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  566.         NO_ATTK, NO_ATTK, NO_ATTK },
  567.       30, 30, 0, MS_SQEEK, MZ_TINY, 0, 0,
  568.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  569.       M2_HOSTILE, 0, C(BROWN) },
  570.     { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
  571.       { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK,
  572.         NO_ATTK, NO_ATTK, NO_ATTK },
  573.       30, 5, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
  574.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
  575.       M2_HOSTILE, 0, C(BROWN) },
  576.     { "wererat", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
  577.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
  578.         NO_ATTK, NO_ATTK, NO_ATTK },
  579.       40, 30, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
  580.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  581.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  582.     { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
  583.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  584.         NO_ATTK, NO_ATTK, NO_ATTK },
  585.       30, 30, 0, MS_SILENT, MZ_SMALL, 0, 0,
  586.       M1_TUNNEL | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE,
  587.       M2_HOSTILE | M2_GREEDY | M2_JEWELS | M2_COLLECT, 0, C(GRAY) },
  588. /*    spiders and scorpions    */
  589.     { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  590.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  591.         NO_ATTK, NO_ATTK, NO_ATTK },
  592.       50, 50, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
  593.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  594.       M2_HOSTILE, 0, C(GRAY) },
  595.     { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
  596.       { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK,
  597.         NO_ATTK, NO_ATTK, NO_ATTK },
  598.       100, 100, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
  599.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  600.       M2_HOSTILE | M2_STRONG, 0, C(MAGENTA) },
  601.     { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
  602.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  603.         { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  604.       50, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  605.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS |
  606.       M1_CARNIVORE, M2_HOSTILE, 0, C(RED) },
  607. /*    trappers, lurkers, &c.    */
  608.     { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
  609.       { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK,
  610.         NO_ATTK, NO_ATTK, NO_ATTK },
  611.       800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
  612.       M1_HIDE | M1_FLY | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  613.       M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, C(GRAY) },
  614.     { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
  615.       { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK,
  616.         NO_ATTK, NO_ATTK, NO_ATTK },
  617.       800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
  618.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  619.       M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, C(GREEN) },
  620. /*    unicorns    */
  621.     { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
  622.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  623.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  624.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  625.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  626.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(WHITE) },
  627.     { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
  628.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  629.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  630.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  631.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  632.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(GRAY) },
  633.     { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
  634.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  635.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  636.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  637.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  638.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(BLACK) },
  639. /*    vortices    */
  640.     { "fog cloud",    S_VORTEX, 3,  1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
  641.       { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  642.         NO_ATTK, NO_ATTK, NO_ATTK },
  643.       0, 0, 0, MS_SILENT, MZ_HUGE,
  644.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  645.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  646.       M1_MINDLESS | M1_AMORPHOUS | M1_UNSOLID,
  647.       M2_HOSTILE | M2_NEUTER, 0, C(GRAY) },
  648.     { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
  649.       { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK,
  650.         NO_ATTK, NO_ATTK, NO_ATTK },
  651.       0, 0, 0, MS_SILENT, MZ_HUGE,
  652.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  653.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  654.       M1_MINDLESS,
  655.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  656.     { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  657.       { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK,
  658.         NO_ATTK, NO_ATTK, NO_ATTK },
  659.       0, 0, 0, MS_SILENT, MZ_HUGE,
  660.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  661.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  662.       M1_MINDLESS,
  663.       M2_HOSTILE | M2_NEUTER, 0, C(CYAN) },
  664.     { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  665.       { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
  666.         { AT_NONE, AD_ELEC, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  667.       0, 0, 0, MS_SILENT, MZ_HUGE,
  668.       MR_ELEC | MR_SLEEP | MR_DISINT | MR_POISON | MR_STONE, 0,
  669.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  670.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(HI_ZAP) },
  671.     { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
  672.       (G_HELL | G_GENO | G_NOCORPSE | 2),
  673.       { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK,
  674.         NO_ATTK, NO_ATTK, NO_ATTK },
  675.       0, 0, 0, MS_SILENT, MZ_HUGE,
  676.       MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  677.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  678.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  679.     { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
  680.       (G_HELL | G_GENO | G_NOCORPSE | 1),
  681.       { { AT_ENGL, AD_FIRE, 1, 10 }, { AT_NONE, AD_FIRE, 0, 4 },
  682.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  683.       0, 0, 0, MS_SILENT, MZ_HUGE,
  684.       MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  685.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  686.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  687. /*    worms    */
  688.     { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  689.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  690.         NO_ATTK, NO_ATTK, NO_ATTK },
  691.       600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
  692.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
  693.       M2_HOSTILE, 0, C(BROWN) },
  694.     { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  695.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  696.         NO_ATTK, NO_ATTK, NO_ATTK },
  697.       600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
  698.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
  699.       M2_HOSTILE, 0, C(MAGENTA) },
  700.     { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
  701.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  702.         NO_ATTK, NO_ATTK, NO_ATTK },
  703.       1500, 500, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
  704.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
  705.       M2_HOSTILE | M2_STRONG | M2_NASTY,
  706.       0, C(BROWN) },
  707.     { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
  708.       { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
  709.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  710.       2700, 700, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
  711.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
  712.       M2_HOSTILE | M2_STRONG | M2_NASTY,
  713.       0, C(MAGENTA) },
  714. /*    Dummy monster needed for visual interface. */
  715.     { "long worm tail", S_WORM_TAIL, 0, 0, 0, 0, 0,
  716.       (G_NOGEN | G_NOCORPSE | G_UNIQ),    /* uniq prevents figurines */
  717.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  718.       0, 0, 0, 0, 0, 0, 0, 0, M2_NOPOLY, 0, C(BROWN) },
  719. /*    xan, &c.    */
  720.     { "grid bug", S_XAN, 0, 12, 9, 0, 0,
  721.       (G_GENO | G_SGROUP | G_NOCORPSE | 3),
  722.       { { AT_BITE, AD_ELEC, 1, 1 }, NO_ATTK, NO_ATTK,
  723.         NO_ATTK, NO_ATTK, NO_ATTK },
  724.       15, 10, 0, MS_BUZZ, MZ_TINY, MR_ELEC | MR_POISON, 0,
  725.       M1_ANIMAL, M2_HOSTILE, 0, C(MAGENTA) },
  726.     { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
  727.       { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK,
  728.         NO_ATTK, NO_ATTK, NO_ATTK },
  729.       300, 300, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  730.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS, M2_HOSTILE, 0, C(RED) },
  731. /*    lights */
  732.     { "yellow light", S_LIGHT, 3, 15, 0, 0, 0, (G_NOCORPSE| G_GENO | 4),
  733.       { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK,
  734.         NO_ATTK, NO_ATTK, NO_ATTK },
  735.       0, 0, 0, MS_SILENT, MZ_SMALL,
  736.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON |
  737.       MR_ACID | MR_STONE, 0,
  738.       M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS |
  739.       M1_NOHEAD | M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER,
  740.       0, C(YELLOW) },
  741. /*    zruty    */
  742.     { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
  743.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  744.         { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  745.       1200, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
  746.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  747.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  748. /*    Angels and other lawful minions */
  749.     { "couatl", S_ANGEL, 8, 10, 5, 30, 7,
  750.       (G_NOHELL | G_SGROUP | G_NOCORPSE | 1),
  751.       { { AT_BITE, AD_DRST, 2, 4 }, { AT_BITE, AD_PHYS, 1, 3 },
  752.         { AT_HUGS, AD_WRAP, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  753.       900, 400, 0, MS_SILENT, MZ_LARGE, MR_POISON, 0, M1_FLY | M1_POIS,
  754.       M2_MINION | M2_STALK | M2_STRONG | M2_NASTY, 0, C(GREEN) },
  755.     { "Aleax", S_ANGEL, 10, 8, 0, 30, 7, (G_NOHELL | G_NOCORPSE | 1),
  756.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_WEAP, AD_PHYS, 1, 6 },
  757.         { AT_KICK, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  758.       WT_HUMAN, 400, 0,
  759.       MS_SILENT, MZ_HUMAN, MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  760.       M1_HUMANOID | M1_SEE_INVIS,
  761.       M2_MINION | M2_STALK | M2_NASTY | M2_COLLECT, 0, C(YELLOW) },
  762.     { "Angel", S_ANGEL, 14, 10, -4, 55, 12, (G_NOHELL | G_NOCORPSE | 1),
  763.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 4 },
  764.         { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 },
  765.         NO_ATTK, NO_ATTK },
  766.       WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN,
  767.       MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  768.       M1_HUMANOID | M1_SEE_INVIS,
  769.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_COLLECT,
  770.       0, C(WHITE) },
  771.     { "ki-rin", S_ANGEL, 16, 18, -5, 90, 15, (G_NOHELL | G_NOCORPSE | 1),
  772.       { { AT_KICK, AD_PHYS, 2, 4 }, { AT_KICK, AD_BLND, 2, 4 },
  773.         { AT_BUTT, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  774.       WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE, 0, 0,
  775.       M1_FLY | M1_HUMANOID | M1_SEE_INVIS,
  776.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD,
  777.       0, C(HI_GOLD) },
  778.     { "Archon", S_ANGEL, 19, 16, -6, 80, 15, (G_NOHELL | G_NOCORPSE |1),
  779.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_GAZE, AD_BLND, 2, 6 },
  780.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 1, 8 },
  781.         { AT_MAGC, AD_SPEL, 4, 6 }, NO_ATTK },
  782.       WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE,
  783.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  784.       M1_FLY | M1_HUMANOID | M1_SEE_INVIS | M1_REGEN,
  785.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD |
  786.       M2_COLLECT | M2_MAGIC,
  787.       0, C(HI_LORD) },
  788. /*    Bats    */
  789.     { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
  790.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  791.         NO_ATTK, NO_ATTK, NO_ATTK },
  792.       20, 20, 0, MS_SQEEK, MZ_TINY, 0, 0,
  793.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  794.       M2_WANDER, 0, C(BROWN) },
  795.     { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
  796.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  797.         NO_ATTK, NO_ATTK, NO_ATTK },
  798.       30, 30, 0, MS_SQEEK, MZ_MEDIUM, 0, 0,
  799.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  800.       M2_WANDER | M2_HOSTILE, 0, C(RED) },
  801.     { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
  802.       { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
  803.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  804.       30, 20, 0, MS_SQEEK, MZ_TINY, MR_SLEEP | MR_POISON, 0,
  805.       M1_FLY | M1_BREATHLESS | M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_REGEN,
  806.       M2_UNDEAD | M2_HOSTILE, 0, C(BLACK) },
  807. /*    Centaurs    */
  808.     { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
  809.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
  810.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  811.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  812.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(BROWN) },
  813.     { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
  814.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
  815.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  816.       2550, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
  817.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(GREEN) },
  818.     { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
  819.       { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
  820.         { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  821.       2550, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  822.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(CYAN) },
  823. /*    Dragons.  The order of the dragons is VERY IMPORTANT.  Quite a few
  824.     pieces of code depend on gray being first and yellow being last.
  825.     The code also depends on the *order* being the same as that for
  826.     dragon scale mail and dragon scales in objects.c            */
  827.     { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  828.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  829.         NO_ATTK, NO_ATTK, NO_ATTK },
  830.       1500, 500, 0, MS_ROAR, MZ_HUGE, 0, 0,
  831.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  832.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(GRAY) },
  833.     { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  834.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  835.         NO_ATTK, NO_ATTK, NO_ATTK },
  836.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_FIRE, MR_FIRE,
  837.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  838.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(RED) },
  839.     { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  840.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  841.         NO_ATTK, NO_ATTK, NO_ATTK },
  842.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_COLD, MR_COLD,
  843.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  844.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(WHITE) },
  845.     { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  846.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  847.         NO_ATTK, NO_ATTK, NO_ATTK },
  848.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_SLEEP, MR_SLEEP,
  849.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  850.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(ORANGE_COLORED) },
  851.     { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  852.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  853.         NO_ATTK, NO_ATTK, NO_ATTK },
  854.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_DISINT, MR_DISINT,
  855.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  856.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(BLACK) },
  857.     { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  858.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  859.         NO_ATTK, NO_ATTK, NO_ATTK },
  860.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ELEC, MR_ELEC,
  861.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  862.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(BLUE) },
  863.     { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  864.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  865.         NO_ATTK, NO_ATTK, NO_ATTK },
  866.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_POISON, MR_POISON,
  867.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_POIS,
  868.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(GREEN) },
  869.     { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  870.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  871.         NO_ATTK, NO_ATTK, NO_ATTK },
  872.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ACID | MR_STONE, MR_STONE,
  873.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_ACID,
  874.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(YELLOW) },
  875.     { "gray dragon", S_DRAGON, 15, 9, -1, 20, 4, (G_GENO | 1),
  876.       { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  877.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  878.         NO_ATTK, NO_ATTK },
  879.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, 0, 0,
  880.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  881.       M1_CARNIVORE,
  882.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  883.       0, C(GRAY) },
  884.     { "red dragon", S_DRAGON, 15, 9, -1, 20, -4, (G_GENO | 1),
  885.       { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  886.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  887.         NO_ATTK, NO_ATTK },
  888.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_FIRE, MR_FIRE,
  889.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  890.       M1_CARNIVORE,
  891.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  892.       0, C(RED) },
  893.     { "white dragon", S_DRAGON, 15, 9, -1, 20, -5, (G_GENO | 1),
  894.       { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  895.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  896.         NO_ATTK, NO_ATTK },
  897.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_COLD, MR_COLD,
  898.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  899.       M1_CARNIVORE,
  900.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  901.       0, C(WHITE) },
  902.     { "orange dragon", S_DRAGON, 15, 9, -1, 20, 5, (G_GENO | 1),
  903.       { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
  904.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  905.         NO_ATTK, NO_ATTK },
  906.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_SLEEP, MR_SLEEP,
  907.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  908.       M1_CARNIVORE,
  909.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  910.       0, C(ORANGE_COLORED) },
  911.     { "black dragon", S_DRAGON, 15, 9, -1, 20, -6, (G_GENO | 1),
  912.       { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
  913.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  914.         NO_ATTK, NO_ATTK },
  915.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_DISINT, MR_DISINT,
  916.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  917.       M1_CARNIVORE,
  918.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  919.       0, C(BLACK) },
  920.     { "blue dragon", S_DRAGON, 15, 9, -1, 20, -7, (G_GENO | 1),
  921.       { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  922.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  923.         NO_ATTK, NO_ATTK },
  924.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_ELEC, MR_ELEC,
  925.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  926.       M1_CARNIVORE,
  927.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  928.       0, C(BLUE) },
  929.     { "green dragon", S_DRAGON, 15, 9, -1, 20, 6, (G_GENO | 1),
  930.       { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  931.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  932.         NO_ATTK, NO_ATTK },
  933.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_POISON, MR_POISON,
  934.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  935.       M1_CARNIVORE | M1_POIS,
  936.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  937.       0, C(GREEN) },
  938.     { "yellow dragon", S_DRAGON, 15, 9, -1, 20, 7, (G_GENO | 1),
  939.       { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  940.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  941.         NO_ATTK, NO_ATTK },
  942.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  943.       MR_ACID | MR_STONE, MR_STONE,
  944.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  945.       M1_CARNIVORE | M1_ACID,
  946.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  947.       0, C(YELLOW) },
  948. /*    Elementals    */
  949.     { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
  950.       { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  951.         NO_ATTK, NO_ATTK, NO_ATTK },
  952.       0, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
  953.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
  954.       M1_FLY,
  955.       M2_STRONG | M2_NEUTER, 0, C(CYAN) },
  956.     { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
  957.       { { AT_CLAW, AD_FIRE, 3, 6 }, { AT_NONE, AD_FIRE, 0, 4 },
  958.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  959.       0, 0, 0, MS_SILENT, MZ_HUGE, MR_FIRE | MR_POISON | MR_STONE, 0,
  960.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
  961.       M1_FLY,
  962.       M2_STRONG | M2_NEUTER, 0, C(YELLOW) },
  963.     { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  964.       { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK,
  965.         NO_ATTK, NO_ATTK, NO_ATTK },
  966.       2500, 0, 0, MS_SILENT, MZ_HUGE,
  967.       MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  968.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS |
  969.       M1_WALLWALK | M1_THICK_HIDE, M2_STRONG | M2_NEUTER, 0, C(BROWN) },
  970.     { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  971.       { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK,
  972.         NO_ATTK, NO_ATTK, NO_ATTK },
  973.       2500, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
  974.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_AMPHIBIOUS |
  975.       M1_SWIM,
  976.       M2_STRONG | M2_NEUTER, 0, C(BLUE) },
  977. /*    Fungi    */
  978.     { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  979.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
  980.         NO_ATTK, NO_ATTK, NO_ATTK },
  981.       50, 30, 0, MS_SILENT, MZ_SMALL,
  982.       MR_COLD | MR_POISON, MR_COLD | MR_POISON,
  983.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  984.       M1_OMNIVORE,
  985.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  986.     { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
  987.       { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK,
  988.         NO_ATTK, NO_ATTK, NO_ATTK },
  989.       50, 30, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  990.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  991.       M1_OMNIVORE | M1_POIS,
  992.       M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  993.     { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  994.       { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK,
  995.         NO_ATTK, NO_ATTK, NO_ATTK },
  996.       50, 30, 0, MS_SILENT, MZ_SMALL, MR_ACID | MR_STONE, MR_STONE,
  997.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  998.       M1_OMNIVORE | M1_ACID,
  999.       M2_HOSTILE | M2_NEUTER, 0, C(GREEN) },
  1000.     { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  1001.       { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK,
  1002.         NO_ATTK, NO_ATTK, NO_ATTK },
  1003.       50, 30, 0, MS_SILENT, MZ_SMALL,
  1004.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1005.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  1006.       M1_OMNIVORE,
  1007.       M2_HOSTILE | M2_NEUTER, 0, C(RED) },
  1008.     { "shrieker", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 1),
  1009.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1010.       100, 100, 0, MS_SHRIEK, MZ_SMALL, MR_POISON, MR_POISON,
  1011.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  1012.       M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
  1013.     { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
  1014.       { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
  1015.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1016.       100, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  1017.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  1018.       M1_OMNIVORE,
  1019.       M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
  1020. /*    Gnomes    */
  1021.     { "gnome", S_GNOME, 1, 6, MARM(10,5), 4, 0, (G_GENO | G_SGROUP | 1),
  1022.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1023.         NO_ATTK, NO_ATTK, NO_ATTK },
  1024.       650, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
  1025.       M1_HUMANOID, M2_COLLECT, 0, C(BROWN) },
  1026.     { "gnome lord", S_GNOME, 3, 8, MARM(10,4), 4, 0, (G_GENO | 2),
  1027.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1028.         NO_ATTK, NO_ATTK, NO_ATTK },
  1029.       700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
  1030.       M1_HUMANOID, M2_LORD | M2_MALE | M2_COLLECT, 0, C(BLUE) },
  1031.     { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
  1032.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  1033.         NO_ATTK, NO_ATTK, NO_ATTK },
  1034.       700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
  1035.       M1_HUMANOID, M2_MAGIC, 0, C(HI_ZAP) },
  1036.     { "gnome king", S_GNOME, 5, 10, MARM(10,2), 20, 0, (G_GENO | 1),
  1037.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1038.         NO_ATTK, NO_ATTK, NO_ATTK },
  1039.       750, 150, 0, MS_ORC, MZ_SMALL, 0, 0,
  1040.       M1_HUMANOID, M2_PRINCE | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
  1041. #ifdef SPLITMON_1
  1042. };
  1043. #endif
  1044. #endif /* !SPLITMON_2 */
  1045.  
  1046. /* horrible kludge alert:
  1047.  * This is a compiler-specific kludge to allow the compilation of monst.o in
  1048.  * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
  1049.  * resulting assembler files (monst1.s and monst2.s) are then run through
  1050.  * sed to change local symbols, concatenated together, and assembled to
  1051.  * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
  1052.  * be done if you don't have enough memory to compile monst.o the "normal"
  1053.  * way.  --ERS
  1054.  */
  1055.  
  1056. #ifndef SPLITMON_1
  1057. #ifdef SPLITMON_2
  1058. struct permonst _mons2[] = {
  1059. #endif
  1060. /*    giant Humanoids */
  1061.     { "giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_NOGEN | 1),
  1062.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1063.         NO_ATTK, NO_ATTK, NO_ATTK },
  1064.       2250, 750, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1065.       M1_HUMANOID,
  1066.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1067.       M2_JEWELS, 0, C(RED) },
  1068.     { "stone giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_SGROUP | 1),
  1069.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1070.         NO_ATTK, NO_ATTK, NO_ATTK },
  1071.       2250, 750, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1072.       M1_HUMANOID,
  1073.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1074.       M2_JEWELS, 0, C(GRAY) },
  1075.     { "hill giant", S_GIANT, 8, 10, 6, 0, -2, (G_GENO | G_SGROUP | 1),
  1076.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  1077.         NO_ATTK, NO_ATTK, NO_ATTK },
  1078.       2200, 700, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1079.       M1_HUMANOID,
  1080.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1081.       M2_JEWELS, 0, C(CYAN) },
  1082.     { "fire giant", S_GIANT, 9, 12, 4, 5, 2, (G_GENO | G_SGROUP | 1),
  1083.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1084.         NO_ATTK, NO_ATTK, NO_ATTK },
  1085.       2250, 750, 0, MS_SILENT, MZ_HUGE, MR_FIRE, MR_FIRE,
  1086.       M1_HUMANOID,
  1087.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1088.       M2_JEWELS, 0, C(YELLOW) },
  1089.     { "frost giant", S_GIANT, 10, 12, 3, 10, -3, (G_GENO | G_SGROUP | 1),
  1090.       { { AT_WEAP, AD_PHYS, 2, 12 }, NO_ATTK, NO_ATTK,
  1091.         NO_ATTK, NO_ATTK, NO_ATTK },
  1092.       2250, 750, 0, MS_SILENT, MZ_HUGE, MR_COLD, MR_COLD,
  1093.       M1_HUMANOID,
  1094.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1095.       M2_JEWELS, 0, C(WHITE) },
  1096.     { "ettin", S_GIANT, 10, 12, 3, 0, 0, (G_GENO | 1),
  1097.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1098.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1099.       1700, 500, 0, MS_GRUNT, MZ_HUGE, 0, 0,
  1100.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1101.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT, 0, C(BROWN) },
  1102.     { "titan", S_GIANT, 16, 18, -3, 70, 9, 1,
  1103.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1104.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1105.       2300, 900, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1106.       M1_FLY | M1_HUMANOID, M2_STRONG | M2_ROCKTHROW | M2_NASTY |
  1107.       M2_COLLECT | M2_MAGIC, 0, C(MAGENTA) },
  1108.     { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
  1109.       { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
  1110.         { AT_BUTT, AD_PHYS, 2, 8}, NO_ATTK, NO_ATTK, NO_ATTK },
  1111.       1500, 700, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1112.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1113.       M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(BROWN) },
  1114. /*    Invisible stalker    */
  1115.     { "stalker", S_STALKER, 8, 12, 3, 0, 0, (G_GENO | 3),
  1116.       { { AT_CLAW, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK,
  1117.         NO_ATTK, NO_ATTK, NO_ATTK },
  1118.       900, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1119.       M1_ANIMAL | M1_FLY | M1_SEE_INVIS,
  1120.       M2_WANDER | M2_STALK | M2_HOSTILE | M2_STRONG, 0, C(WHITE) },
  1121. /*    Jabberwock */
  1122.     { "jabberwock", S_JABBERWOCK, 15, 12, -2, 50, 0, (G_GENO | 1),
  1123.       { { AT_BITE, AD_PHYS, 2, 10 }, { AT_BITE, AD_PHYS, 2, 10 },
  1124.         { AT_CLAW, AD_PHYS, 2, 10 }, { AT_CLAW, AD_PHYS, 2, 10 },
  1125.         NO_ATTK, NO_ATTK },
  1126.       1300, 600, 0, MS_BURBLE, MZ_LARGE, 0, 0,
  1127.       M1_ANIMAL | M1_FLY | M1_CARNIVORE,
  1128.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  1129.       0, C(ORANGE_COLORED) },
  1130. /*    Kops    */
  1131. #ifdef KOPS
  1132.     { "Keystone Kop", S_KOP, 1, 6, MARM(10,7), 10, 9,
  1133.       (G_GENO | G_LGROUP | G_NOGEN),
  1134.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1135.         NO_ATTK, NO_ATTK, NO_ATTK },
  1136.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1137.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_MALE | M2_COLLECT,
  1138.       0, C(BLUE) },
  1139.     { "Kop Sergeant", S_KOP, 2, 8, MARM(10,6), 10, 10,
  1140.       (G_GENO | G_SGROUP | G_NOGEN),
  1141.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1142.         NO_ATTK, NO_ATTK, NO_ATTK },
  1143.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1144.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1145.       0, C(BLUE) },
  1146.     { "Kop Lieutenant", S_KOP, 3, 10, MARM(10,5), 20, 11,
  1147.       (G_GENO | G_NOGEN),
  1148.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1149.         NO_ATTK, NO_ATTK, NO_ATTK },
  1150.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1151.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1152.       0, C(CYAN) },
  1153.     { "Kop Kaptain", S_KOP, 4, 12, MARM(10,4), 20, 12, (G_GENO | G_NOGEN),
  1154.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1155.         NO_ATTK, NO_ATTK, NO_ATTK },
  1156.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1157.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1158.       0, C(HI_LORD) },
  1159. #endif
  1160. /*    Liches     */
  1161.     { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1),
  1162.       { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1163.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1164.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1165.       MR_COLD | MR_SLEEP | MR_POISON, MR_COLD,
  1166.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1167.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, 0, C(BROWN) },
  1168.     { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1),
  1169.       { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1170.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1171.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1172.       MR_COLD | MR_SLEEP | MR_POISON, MR_COLD,
  1173.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1174.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, 0, C(RED) },
  1175.     { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1),
  1176.       { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1177.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1178.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1179.       MR_FIRE | MR_COLD | MR_SLEEP | MR_POISON, MR_FIRE | MR_COLD,
  1180.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1181.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_WANTSBOOK, C(HI_LORD) },
  1182. /*    Mummies     */
  1183.     { "kobold mummy", S_MUMMY, 3, 8, 6, 20, -2, (G_GENO | G_NOCORPSE | 1),
  1184.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1185.         NO_ATTK, NO_ATTK, NO_ATTK },
  1186.       400, 50, 0, MS_SILENT, MZ_SMALL,
  1187.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1188.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1189.       M2_UNDEAD | M2_HOSTILE, 0, C(BROWN) },
  1190.     { "gnome mummy", S_MUMMY, 4, 10, 6, 20, -3, (G_GENO | G_NOCORPSE | 1),
  1191.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1192.         NO_ATTK, NO_ATTK, NO_ATTK },
  1193.       650, 50, 0, MS_SILENT, MZ_SMALL,
  1194.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1195.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1196.       M2_UNDEAD | M2_HOSTILE, 0, C(RED) },
  1197.     { "orc mummy", S_MUMMY, 5, 10, 5, 20, -4, (G_GENO | G_NOCORPSE | 1),
  1198.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1199.         NO_ATTK, NO_ATTK, NO_ATTK },
  1200.       850, 75, 0, MS_SILENT, MZ_HUMAN,
  1201.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1202.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1203.       M2_UNDEAD | M2_HOSTILE | M2_ORC | M2_GREEDY | M2_JEWELS, 0, C(GRAY) },
  1204.     { "elf mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  1205.       { { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1206.         NO_ATTK, NO_ATTK, NO_ATTK },
  1207.       WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN,
  1208.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1209.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1210.       M2_UNDEAD | M2_HOSTILE | M2_ELF, 0, C(GREEN) },
  1211.     { "human mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  1212.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1213.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1214.       WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN,
  1215.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1216.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1217.       M2_UNDEAD | M2_HOSTILE, 0, C(GRAY) },
  1218.     { "ettin mummy", S_MUMMY, 7, 12, 4, 30, -6, (G_GENO | G_NOCORPSE | 1),
  1219.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
  1220.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1221.       1700, 250, 0, MS_SILENT, MZ_HUGE,
  1222.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1223.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1224.       M2_UNDEAD | M2_HOSTILE | M2_STRONG, 0, C(BLUE) },
  1225.     { "giant mummy", S_MUMMY, 8, 14, 3, 30, -7, (G_GENO | G_NOCORPSE | 1),
  1226.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1227.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1228.       2050, 375, 0, MS_SILENT, MZ_HUGE,
  1229.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1230.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1231.       M2_UNDEAD | M2_HOSTILE | M2_GIANT | M2_STRONG | M2_JEWELS,
  1232.       0, C(CYAN) },
  1233. /*    Nagas    */
  1234.     { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1235.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1236.         NO_ATTK, NO_ATTK, NO_ATTK },
  1237.       500, 100, 0, MS_MUMBLE, MZ_LARGE,
  1238.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1239.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(RED) },
  1240.     { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1241.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1242.         NO_ATTK, NO_ATTK, NO_ATTK },
  1243.       500, 100, 0, MS_MUMBLE, MZ_LARGE,
  1244.       MR_POISON | MR_ACID | MR_STONE, MR_POISON | MR_STONE,
  1245.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(BLACK) },
  1246.     { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1247.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1248.         NO_ATTK, NO_ATTK, NO_ATTK },
  1249.       500, 100, 0, MS_MUMBLE, MZ_LARGE, MR_POISON, MR_POISON,
  1250.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(HI_GOLD) },
  1251.     { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1252.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1253.         NO_ATTK, NO_ATTK, NO_ATTK },
  1254.       500, 100, 0, MS_MUMBLE, MZ_LARGE, MR_POISON, MR_POISON,
  1255.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(GREEN) },
  1256.     { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1),
  1257.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 },
  1258.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1259.       2600, 400, 0, MS_MUMBLE, MZ_HUGE,
  1260.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1261.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS,
  1262.       M2_STRONG, 0, C(RED) },
  1263.     { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1),
  1264.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 },
  1265.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1266.       2600, 400, 0, MS_MUMBLE, MZ_HUGE,
  1267.       MR_POISON | MR_ACID | MR_STONE, MR_POISON | MR_STONE,
  1268.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_ACID,
  1269.       M2_STRONG, 0, C(BLACK) },
  1270.     { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1),
  1271.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 },
  1272.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1273.       2600, 400, 0, MS_MUMBLE, MZ_HUGE, MR_POISON, MR_POISON,
  1274.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS,
  1275.       M2_STRONG, 0, C(HI_GOLD) },
  1276.     { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1),
  1277.       { { AT_BITE, AD_PLYS, 1, 6 }, { AT_SPIT, AD_DRST, 1, 6 },
  1278.         { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1279.       2600, 400, 0, MS_MUMBLE, MZ_HUGE, MR_POISON, MR_POISON,
  1280.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_POIS,
  1281.       M2_STRONG, 0, C(GREEN) },
  1282. /*    Ogres    */
  1283.     { "ogre", S_OGRE, 5, 10, 5, 0, -3, (G_SGROUP | G_GENO | 1),
  1284.       { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK,
  1285.         NO_ATTK, NO_ATTK, NO_ATTK },
  1286.       1600, 500, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1287.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1288.       0, C(BROWN) },
  1289.     { "ogre lord", S_OGRE, 7, 12, 3, 30, -5, (G_GENO | 2),
  1290.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1291.         NO_ATTK, NO_ATTK, NO_ATTK },
  1292.       1700, 700, 0, MS_GRUNT, MZ_LARGE, 0, 0, M1_HUMANOID,
  1293.       M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1294.       0, C(RED) },
  1295.     { "ogre king", S_OGRE, 7, 14, 4, 60, -7, (G_GENO | 2),
  1296.       { { AT_WEAP, AD_PHYS, 3, 5 }, NO_ATTK, NO_ATTK,
  1297.         NO_ATTK, NO_ATTK, NO_ATTK },
  1298.       1700, 750, 0, MS_GRUNT, MZ_LARGE, 0, 0, M1_HUMANOID,
  1299.       M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1300.       0, C(HI_LORD) },
  1301. /*    Puddings */
  1302.     { "gray ooze", S_PUDDING, 3, 1, 8, 0, 0, (G_GENO | 2),
  1303.       { { AT_BITE, AD_RUST, 2, 8 }, NO_ATTK, NO_ATTK,
  1304.         NO_ATTK, NO_ATTK, NO_ATTK },
  1305.       500, 250, 0, MS_SILENT, MZ_MEDIUM,
  1306.       MR_FIRE | MR_COLD | MR_POISON | MR_ACID | MR_STONE,
  1307.       MR_FIRE | MR_COLD | MR_POISON,
  1308.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1309.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1310.       M2_HOSTILE | M2_NEUTER, 0, C(GRAY) },
  1311.     { "brown pudding", S_PUDDING, 5, 3, 8, 0, 0, (G_GENO | 1),
  1312.       { { AT_BITE, AD_DCAY, 0, 0 }, NO_ATTK, NO_ATTK,
  1313.         NO_ATTK, NO_ATTK, NO_ATTK },
  1314.       500, 250, 0, MS_SILENT, MZ_MEDIUM,
  1315.       MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  1316.       MR_COLD | MR_ELEC | MR_POISON,
  1317.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1318.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1319.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  1320.     { "black pudding", S_PUDDING, 10, 6, 6, 0, 0, (G_GENO | 1),
  1321.       { { AT_BITE, AD_RUST, 3, 8 }, { AT_NONE, AD_RUST, 0, 0 },
  1322.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1323.       900, 250, 0, MS_SILENT, MZ_LARGE,
  1324.       MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  1325.       MR_COLD | MR_ELEC | MR_POISON,
  1326.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1327.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1328.       M2_HOSTILE | M2_NEUTER, 0, C(BLACK) },
  1329. /*    Quantum Mechanics    */
  1330.     { "quantum mechanic", S_QUANTMECH, 7, 12, 3, 10, 0, (G_GENO | 3),
  1331.       { { AT_CLAW, AD_TLPT, 1, 4 }, NO_ATTK, NO_ATTK,
  1332.         NO_ATTK, NO_ATTK, NO_ATTK },
  1333.       WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, 0,
  1334.       M1_HUMANOID | M1_POIS | M1_TPORT, M2_HOSTILE, 0, C(CYAN) },
  1335. /*    Rust Monster    */
  1336.     { "rust monster", S_RUSTMONST, 5, 18, 2, 0, 0, (G_GENO | 2),
  1337.       { { AT_TUCH, AD_RUST, 0, 0 }, { AT_TUCH, AD_RUST, 0, 0 },
  1338.         { AT_NONE, AD_RUST, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1339.       1000, 250, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  1340.       M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE, M2_HOSTILE,
  1341.       0, C(BROWN) },
  1342. /*    Snakes    */
  1343.     { "garter snake", S_SNAKE, 1, 8, 8, 0, 0, (G_LGROUP | G_GENO | 1),
  1344.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  1345.         NO_ATTK, NO_ATTK, NO_ATTK },
  1346.       50, 60, 0, MS_HISS, MZ_TINY, 0, 0,
  1347.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1348.       M1_OVIPAROUS | M1_CARNIVORE, 0, 0, C(GREEN) },
  1349.     { "snake", S_SNAKE, 4, 15, 3, 0, 0, (G_GENO | 2),
  1350.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK,
  1351.         NO_ATTK, NO_ATTK, NO_ATTK },
  1352.       100, 80, 0, MS_HISS, MZ_SMALL, MR_POISON, MR_POISON,
  1353.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1354.       M1_OVIPAROUS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  1355.     { "water moccasin", S_SNAKE, 4, 15, 3, 0, 0,
  1356.       (G_GENO | G_NOGEN | G_LGROUP),
  1357.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK,
  1358.         NO_ATTK, NO_ATTK, NO_ATTK },
  1359.       150, 80, 0, MS_HISS, MZ_SMALL, MR_POISON, MR_POISON,
  1360.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1361.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(RED) },
  1362.     { "pit viper", S_SNAKE, 6, 15, 2, 0, 0, (G_GENO | 1),
  1363.       { { AT_BITE, AD_DRST, 1, 4 }, { AT_BITE, AD_DRST, 1, 4 },
  1364.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1365.       100, 60, 0, MS_HISS, MZ_MEDIUM,
  1366.       MR_POISON, MR_POISON,
  1367.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1368.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  1369.     { "python", S_SNAKE, 6, 3, 5, 0, 0, (G_GENO | 1),
  1370.       { { AT_BITE, AD_DRST, 1, 4 }, {AT_BITE, AD_PHYS, 1, 4},
  1371.         { AT_HUGS, AD_WRAP, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1372.       250, 100, 0, MS_HISS, MZ_LARGE, MR_POISON, MR_POISON,
  1373.       M1_SWIM | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1374.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE | M2_STRONG, 0, C(MAGENTA) },
  1375.     { "cobra", S_SNAKE, 6, 18, 2, 0, 0, (G_GENO | 1),
  1376.       { { AT_BITE, AD_DRST, 2, 4 }, { AT_SPIT, AD_BLND, 0, 0 },
  1377.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1378.       250, 100, 0, MS_HISS, MZ_MEDIUM,
  1379.       MR_POISON, MR_POISON,
  1380.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1381.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  1382. /*    Trolls    */
  1383.     { "troll", S_TROLL, 7, 12, 4, 0, -3, (G_GENO | 2),
  1384.       { { AT_CLAW, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 4, 2 },
  1385.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1386.       800, 350, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1387.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1388.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1389.     { "ice troll", S_TROLL, 9, 10, 2, 20, -3, (G_GENO | 1),
  1390.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_COLD, 2, 6 },
  1391.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1392.       1000, 300, 0, MS_GRUNT, MZ_LARGE, MR_COLD, MR_COLD,
  1393.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1394.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(WHITE) },
  1395.     { "rock troll", S_TROLL, 9, 12, 0, 0, -3, (G_GENO | 1),
  1396.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1397.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1398.       1200, 300, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1399.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1400.       M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(CYAN) },
  1401.     { "water troll", S_TROLL, 11, 14, 4, 40, -3, (G_NOGEN | G_GENO),
  1402.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1403.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1404.       1200, 350, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1405.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE | M1_SWIM,
  1406.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(BLUE) },
  1407.     { "Olog-hai", S_TROLL, 13, 12, -4, 0, -7, (G_GENO | 1),
  1408.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1409.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1410.       1500, 400, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1411.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1412.       M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(HI_LORD) },
  1413. /*    Umber Hulk    */
  1414.     { "umber hulk", S_UMBER, 9, 6, 2, 25, 0, (G_GENO | 2),
  1415.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1416.         { AT_BITE, AD_PHYS, 2, 5 }, { AT_GAZE, AD_CONF, 0, 0 },
  1417.         NO_ATTK, NO_ATTK },
  1418.       1200, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1419.       M1_TUNNEL | M1_CARNIVORE, M2_STRONG, 0, C(BROWN) },
  1420. /*    Vampires    */
  1421.     { "vampire", S_VAMPIRE, 10, 12, 1, 25, -8, (G_GENO | 1),
  1422.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1423.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1424.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1425.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1426.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(RED) },
  1427.     { "vampire lord", S_VAMPIRE, 12, 14, 0, 50, -9, (G_GENO | 1),
  1428.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_BITE, AD_DRLI, 1, 8 },
  1429.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1430.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1431.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1432.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY |
  1433.       M2_LORD | M2_MALE, 0, C(BLUE) },
  1434.     { "Vlad the Impaler", S_VAMPIRE, 14, 18, -3, 80, -10,
  1435.       (G_NOGEN | G_NOCORPSE | G_UNIQ),
  1436.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1437.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1438.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1439.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1440.       M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG |
  1441.       M2_NASTY | M2_PRINCE | M2_MALE, M3_WAITFORU | M3_WANTSBOOK,
  1442.       C(HI_LORD) },
  1443. /*    Wraiths     */
  1444.     { "barrow wight", S_WRAITH, 3, 12, 5, 5, -3, (G_GENO | G_NOCORPSE | 1),
  1445.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1446.         { AT_WEAP, AD_DRLI, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1447.       1200, 0, 0, MS_SILENT, MZ_HUMAN, MR_COLD | MR_SLEEP | MR_POISON, 0,
  1448.       M1_BREATHLESS | M1_HUMANOID,
  1449.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(GRAY) },
  1450.     { "wraith", S_WRAITH, 6, 12, 4, 15, -6, (G_GENO | 2),
  1451.       { { AT_TUCH, AD_DRLI, 1, 6 }, NO_ATTK, NO_ATTK,
  1452.         NO_ATTK, NO_ATTK, NO_ATTK },
  1453.       0, 0, 0, MS_SILENT, MZ_HUMAN,
  1454.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1455.       M1_BREATHLESS | M1_FLY | M1_HUMANOID | M1_UNSOLID,
  1456.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BLACK) },
  1457.     { "Nazgul", S_WRAITH, 13, 12, 0, 25, -17, (G_GENO | G_NOCORPSE | 1),
  1458.       { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 },
  1459.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1460.       WT_HUMAN, 0, 0, MS_SILENT, MZ_HUMAN,
  1461.       MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_HUMANOID,
  1462.       M2_UNDEAD | M2_STALK | M2_STRONG | M2_HOSTILE | M2_MALE | M2_COLLECT,
  1463.       0, C(HI_LORD) },
  1464. /*    Xorn    */
  1465.     { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1),
  1466.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1467.         { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 4, 6 },
  1468.         NO_ATTK, NO_ATTK }, 1200, 700, 0, MS_SILENT, MZ_MEDIUM,
  1469.       MR_FIRE | MR_COLD | MR_STONE, MR_FIRE | MR_COLD | MR_STONE,
  1470.       M1_BREATHLESS | M1_WALLWALK | M1_THICK_HIDE | M1_METALLIVORE,
  1471.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  1472. /*    Yeti, Apes and other large beasts */
  1473.     { "ape", S_YETI, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
  1474.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1475.         { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1476.       1100, 500, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1477.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1478.       M2_STRONG, 0, C(BROWN) },
  1479.     { "owlbear", S_YETI, 5, 12, 5, 0, 0, (G_GENO | 3),
  1480.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1481.         { AT_HUGS, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1482.       1700, 700, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1483.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1484.       M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(BROWN) },
  1485.     { "yeti", S_YETI, 5, 15, 6, 0, 0, (G_GENO | 2),
  1486.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1487.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1488.       1600, 700, 0, MS_GROWL, MZ_LARGE, MR_COLD, MR_COLD,
  1489.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1490.       M2_HOSTILE | M2_STRONG, 0, C(WHITE) },
  1491.     { "carnivorous ape", S_YETI, 6, 12, 6, 0, 0, (G_GENO | 1),
  1492.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1493.         { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1494.       1250, 550, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1495.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1496.       M2_HOSTILE | M2_STRONG, 0, C(BLACK) },
  1497.     { "sasquatch", S_YETI, 7, 15, 6, 0, 2, (G_GENO | 1),
  1498.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1499.         { AT_KICK, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1500.       1550, 750, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1501.       M1_ANIMAL | M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1502.       M2_STRONG, 0, C(GRAY) },
  1503. /*    Zombies     */
  1504.     { "kobold zombie", S_ZOMBIE, 0, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1505.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1506.         NO_ATTK, NO_ATTK, NO_ATTK },
  1507.       400, 50, 0, MS_SILENT, MZ_SMALL,
  1508.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1509.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1510.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1511.     { "gnome zombie", S_ZOMBIE, 1, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1512.       { { AT_CLAW, AD_PHYS, 1, 5 }, NO_ATTK, NO_ATTK,
  1513.         NO_ATTK, NO_ATTK, NO_ATTK },
  1514.       650, 50, 0, MS_SILENT, MZ_SMALL,
  1515.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1516.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1517.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1518.     { "orc zombie", S_ZOMBIE, 2, 6, 9, 0, -3,
  1519.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1520.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1521.         NO_ATTK, NO_ATTK, NO_ATTK },
  1522.       850, 75, 0, MS_SILENT, MZ_HUMAN,
  1523.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1524.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1525.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, 0, C(GRAY) },
  1526.     { "elf zombie", S_ZOMBIE, 3, 6, 9, 0, -3,
  1527.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1528.       { { AT_CLAW, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
  1529.         NO_ATTK, NO_ATTK, NO_ATTK },
  1530.       WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN,
  1531.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1532.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1533.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, 0, C(GREEN) },
  1534.     { "human zombie", S_ZOMBIE, 4, 6, 8, 0, -3,
  1535.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1536.       { { AT_CLAW, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1537.         NO_ATTK, NO_ATTK, NO_ATTK },
  1538.       WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN,
  1539.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1540.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1541.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(HI_DOMESTIC) },
  1542.     { "ettin zombie", S_ZOMBIE, 6, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1543.       { { AT_CLAW, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 1, 10 },
  1544.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1545.       1700, 250, 0, MS_SILENT, MZ_HUGE,
  1546.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1547.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1548.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, 0, C(BLUE) },
  1549.     { "giant zombie", S_ZOMBIE, 8, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1550.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1551.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1552.       2050, 375, 0, MS_SILENT, MZ_HUGE,
  1553.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1554.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1555.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG,
  1556.       0, C(CYAN) },
  1557.     { "skeleton", S_ZOMBIE, 12, 8, 4, 0, 0, (G_NOCORPSE | G_NOGEN),
  1558.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_TUCH, AD_SLOW, 1, 6},
  1559.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1560.       300, 5, 0, MS_BONES, MZ_HUMAN,
  1561.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1562.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1563.       M2_UNDEAD | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  1564.       0, C(WHITE) },
  1565. /*    Golems    */
  1566.     { "straw golem", S_GOLEM, 3, 12, 10, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1567.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  1568.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1569.       400, 0, 0, MS_SILENT, MZ_LARGE,
  1570.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1571.       M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  1572.     { "rope golem", S_GOLEM, 4, 9, 8, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1573.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1574.         { AT_HUGS, AD_PHYS, 6, 1 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1575.       450, 0, 0, MS_SILENT, MZ_LARGE,
  1576.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1577.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  1578.     { "leather golem", S_GOLEM, 6, 6, 6, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1579.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1580.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1581.       800, 0, 0, MS_SILENT, MZ_LARGE,
  1582.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1583.       M2_HOSTILE | M2_NEUTER, 0, C(HI_LEATHER) },
  1584.     { "wood golem", S_GOLEM, 7, 3, 4, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1585.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK,
  1586.         NO_ATTK, NO_ATTK, NO_ATTK },
  1587.       900, 0, 0, MS_SILENT, MZ_LARGE,
  1588.       MR_SLEEP | MR_POISON, 0,
  1589.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1590.       M2_HOSTILE | M2_NEUTER, 0, C(HI_WOOD) },
  1591.     { "flesh golem", S_GOLEM, 9, 8, 9, 30, 0, (G_GENO | 1),
  1592.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1593.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1594.       1400, 600, 0, MS_SILENT, MZ_LARGE,
  1595.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  1596.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  1597.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1598.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  1599.     { "clay golem", S_GOLEM, 11, 7, 7, 40, 0, (G_GENO | G_NOCORPSE | 1),
  1600.       { { AT_CLAW, AD_PHYS, 3, 10 }, NO_ATTK, NO_ATTK,
  1601.         NO_ATTK, NO_ATTK, NO_ATTK },
  1602.       1550, 0, 0, MS_SILENT, MZ_LARGE,
  1603.       MR_SLEEP | MR_POISON, 0,
  1604.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1605.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  1606.     { "stone golem", S_GOLEM, 14, 6, 5, 50, 0, (G_GENO | G_NOCORPSE | 1),
  1607.       { { AT_CLAW, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK,
  1608.         NO_ATTK, NO_ATTK, NO_ATTK },
  1609.       1900, 0, 0, MS_SILENT, MZ_LARGE,
  1610.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  1611.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1612.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  1613.     { "iron golem", S_GOLEM, 18, 6, 3, 60, 0, (G_GENO | G_NOCORPSE | 1),
  1614.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_BREA, AD_DRST, 4, 6 },
  1615.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1616.       2000, 0, 0, MS_SILENT, MZ_LARGE,
  1617.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  1618.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE | M1_POIS,
  1619.       M2_HOSTILE | M2_STRONG | M2_COLLECT, 0, C(HI_METAL) },
  1620. /*    Humans        */
  1621.     { "human", S_HUMAN, 0, 12, 10, 0, 0, G_NOGEN, /* for corpses */
  1622.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK,
  1623.         NO_ATTK, NO_ATTK, NO_ATTK },
  1624.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  1625.       M1_HUMANOID | M1_OMNIVORE,
  1626.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  1627.       0, C(HI_DOMESTIC) },
  1628.     { "wererat", S_HUMAN, 2, 12, MARM(10,7), 10, -7, 1,
  1629.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1630.         NO_ATTK, NO_ATTK, NO_ATTK },
  1631.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN, MR_POISON, 0,
  1632.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1633.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT, 0, C(BROWN) },
  1634.     { "werejackal", S_HUMAN, 2, 12, MARM(10,7), 10, -7, 1,
  1635.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1636.         NO_ATTK, NO_ATTK, NO_ATTK },
  1637.       WT_HUMAN, 400, 0, MS_BARK, MZ_HUMAN, MR_POISON, 0,
  1638.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1639.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT, 0, C(RED) },
  1640.     { "werewolf", S_HUMAN, 5, 12, MARM(10,6), 20, -7, 1,
  1641.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1642.         NO_ATTK, NO_ATTK, NO_ATTK },
  1643.       WT_HUMAN, 400, 0, MS_BARK, MZ_HUMAN, MR_POISON, 0,
  1644.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1645.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT,
  1646.       0, C(ORANGE_COLORED) },
  1647.     { "Woodland-elf", S_HUMAN, 4, 12, MARM(10,5), 10, -5,
  1648.       (G_GENO | G_SGROUP | 2),
  1649.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1650.         NO_ATTK, NO_ATTK, NO_ATTK },
  1651.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1652.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(GREEN) },
  1653.     { "Green-elf", S_HUMAN, 5, 12, MARM(10,5), 10, -6,
  1654.       (G_GENO | G_SGROUP | 2),
  1655.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1656.         NO_ATTK, NO_ATTK, NO_ATTK },
  1657.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1658.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(BRIGHT_GREEN) },
  1659.     { "Grey-elf", S_HUMAN, 6, 12, MARM(10,5), 10, -7,
  1660.       (G_GENO | G_SGROUP | 2),
  1661.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1662.         NO_ATTK, NO_ATTK, NO_ATTK },
  1663.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1664.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(GRAY) },
  1665.     { "elf-lord", S_HUMAN, 8, 12, MARM(10,5), 20, -9,
  1666.       (G_GENO | G_SGROUP | 2),
  1667.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1668.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1669.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1670.       M1_HUMANOID | M1_OMNIVORE,
  1671.       M2_ELF | M2_STRONG | M2_LORD | M2_MALE | M2_COLLECT,
  1672.       0, C(BRIGHT_BLUE) },
  1673.     { "Elvenking", S_HUMAN, 9, 12, MARM(10,5), 25, -10, (G_GENO | 1),
  1674.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4},
  1675.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1676.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN,
  1677.       MR_SLEEP, MR_SLEEP, M1_HUMANOID | M1_OMNIVORE,
  1678.       M2_ELF | M2_STRONG | M2_PRINCE | M2_MALE | M2_COLLECT, 0,
  1679.       C(HI_LORD) },
  1680.     { "nurse", S_HUMAN, 11, 6, 0, 0, 0, (G_GENO | 3),
  1681.       { { AT_CLAW, AD_HEAL, 2, 6 }, NO_ATTK, NO_ATTK,
  1682.         NO_ATTK, NO_ATTK, NO_ATTK },
  1683.       WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN, MR_POISON, MR_POISON,
  1684.       M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_HOSTILE,
  1685.       0, C(HI_DOMESTIC) },
  1686.     { "shopkeeper", S_HUMAN, 12, 18, 0, 50, 0, G_NOGEN,
  1687.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  1688.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1689.       WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN, 0, 0,
  1690.       M1_HUMANOID | M1_OMNIVORE,
  1691.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  1692.       M2_COLLECT | M2_MAGIC,
  1693.       0, C(HI_DOMESTIC) },
  1694.     { "guard", S_HUMAN, 12, 12, MARM(10,-1), 40, 10, G_NOGEN,
  1695.       { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK,
  1696.         NO_ATTK, NO_ATTK, NO_ATTK },
  1697.       WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN,
  1698.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1699.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  1700.       0, C(BLUE) },
  1701.     { "oracle", S_HUMAN, 12, 0, 0, 50, 0, G_NOGEN | G_UNIQ,
  1702.       { { AT_NONE, AD_MAGM, 0, 4 }, NO_ATTK, NO_ATTK,
  1703.         NO_ATTK, NO_ATTK, NO_ATTK },
  1704.       WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN, 0, 0,
  1705.       M1_HUMANOID | M1_OMNIVORE,
  1706.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_FEMALE, 0, C(HI_ZAP) },
  1707.     { "aligned priest", S_HUMAN, 12, 12, MARM(10,0), 50, 0, G_NOGEN,
  1708.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  1709.         { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1710.       WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1711.       MR_ELEC, MR_ELEC, M1_HUMANOID | M1_OMNIVORE,
  1712.       M2_NOPOLY | M2_HUMAN | M2_LORD | M2_PEACEFUL | M2_COLLECT,
  1713.       0, C(WHITE) },
  1714.     { "high priest", S_HUMAN, 25, 15, MARM(7,-3), 70, 0,
  1715.        (G_NOGEN | G_UNIQ),
  1716.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 2, 8 },
  1717.         { AT_MAGC, AD_CLRC, 2, 8 }, { AT_MAGC, AD_CLRC, 2, 8 },
  1718.         NO_ATTK, NO_ATTK },
  1719.       WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1720.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  1721.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  1722.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1723.       M2_NOPOLY | M2_HUMAN | M2_MINION | M2_PRINCE | M2_NASTY |
  1724.       M2_COLLECT | M2_MAGIC, 0, C(WHITE) },
  1725. #ifndef MUSE
  1726.     { "unarmored watchman", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  1727.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1728.         NO_ATTK, NO_ATTK, NO_ATTK },
  1729.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1730.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1731.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1732.       M2_COLLECT, 0, C(BROWN) },
  1733. #endif
  1734. #ifdef ARMY
  1735. # ifndef MUSE
  1736.     { "unarmored soldier", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  1737.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1738.         NO_ATTK, NO_ATTK, NO_ATTK },
  1739.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1740.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1741.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1742.       M2_COLLECT, 0, C(BROWN) },
  1743. # endif
  1744.     { "soldier", S_HUMAN, 6, 4, MARM(10,3), 0, -2, (G_SGROUP | G_GENO | 1),
  1745.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1746.         NO_ATTK, NO_ATTK, NO_ATTK },
  1747.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1748.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1749.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1750.       M2_COLLECT, 0, C(GRAY) },
  1751.     { "sergeant", S_HUMAN, 8, 4, MARM(10,0), 5, -3, (G_SGROUP | G_GENO | 1),
  1752.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1753.         NO_ATTK, NO_ATTK, NO_ATTK },
  1754.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1755.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1756.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1757.       M2_COLLECT, 0, C(RED) },
  1758.     { "lieutenant", S_HUMAN, 10, 4, MARM(10,-2), 15, -4, (G_GENO | 1),
  1759.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  1760.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1761.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1762.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1763.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1764.       M2_COLLECT, 0, C(GREEN) },
  1765.     { "captain", S_HUMAN, 12, 4, MARM(10,-3), 15, -5, (G_GENO | 1),
  1766.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  1767.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1768.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1769.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1770.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1771.       M2_COLLECT, 0, C(BLUE) },
  1772. #endif
  1773. /*
  1774.  *    Keep these separate - some of the mkroom code assumes that all
  1775.  *    the soldiers are contiguous.
  1776.  */
  1777.     { "watchman", S_HUMAN, 6, 4, MARM(10,3), 0, -2, (G_SGROUP | G_NOGEN | G_GENO | 1),
  1778.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1779.         NO_ATTK, NO_ATTK, NO_ATTK },
  1780.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1781.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1782.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1783.       M2_COLLECT, 0, C(GRAY) },
  1784.     { "watch captain", S_HUMAN, 10, 4, MARM(10,-2), 15, -4, (G_NOGEN | G_GENO | 1),
  1785.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  1786.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1787.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1788.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1789.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1790.       M2_COLLECT, 0, C(GREEN) },
  1791.     { "Medusa", S_HUMAN, 20, 12, 2, 50, -15, G_NOGEN | G_UNIQ,
  1792.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_GAZE, AD_STON, 0, 0 },
  1793.         { AT_BITE, AD_DRST, 1, 6 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1794.         NO_ATTK, NO_ATTK },
  1795.       WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE,
  1796.       MR_POISON | MR_STONE, MR_POISON | MR_STONE, M1_FLY | M1_SWIM |
  1797.       M1_AMPHIBIOUS | M1_HUMANOID | M1_POIS | M1_OMNIVORE,
  1798.       M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEMALE,
  1799.       M3_WAITFORU, C(BRIGHT_GREEN) },
  1800.     { "Wizard of Yendor", S_HUMAN, 30, 12, -8, 100, A_NONE, G_NOGEN,
  1801.       { { AT_CLAW, AD_SAMU, 2, 12 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1802.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1803.       WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN,
  1804.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1805.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS |
  1806.       M1_TPORT | M1_TPORT_CNTRL | M1_OMNIVORE,
  1807.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY |
  1808.       M2_PRINCE | M2_MALE | M2_MAGIC,
  1809.       M3_COVETOUS | M3_WAITFORU, C(HI_LORD) },
  1810. #ifdef MULDGN
  1811.     { "Croesus", S_HUMAN, 20, 15, 0, 40, 15, (G_UNIQ | G_NOGEN),
  1812.       { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK,
  1813.         NO_ATTK, NO_ATTK, NO_ATTK },
  1814.       WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN,
  1815.       MR_STONE, MR_STONE, M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1816.       M2_NOPOLY | M2_HUMAN | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY |
  1817.       M2_PNAME | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT |
  1818.       M2_MAGIC, 0, C(HI_LORD) },
  1819. #endif
  1820. #ifdef CHARON
  1821.     { "Charon", S_HUMAN, 76, 18, -5, 120, 0,
  1822.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1823.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 },
  1824.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1825.       WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN,
  1826.       MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  1827.       M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID,
  1828.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_PNAME | M2_MALE | M2_GREEDY |
  1829.       M2_COLLECT,
  1830.       0, C(WHITE) },
  1831. #endif
  1832. /*    Ghosts        */
  1833.     { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN),
  1834.       { { AT_TUCH, AD_PHYS, 1, 1 }, NO_ATTK, NO_ATTK,
  1835.         NO_ATTK, NO_ATTK, NO_ATTK },
  1836.       WT_HUMAN, 0, PL_NSIZ, MS_SILENT, MZ_HUMAN,
  1837.       MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1838.       M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID,
  1839.       M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(GRAY) },
  1840.     { "shade", S_GHOST, 12, 10, 10, 0, 0, (G_NOCORPSE | G_NOGEN),
  1841.       { { AT_TUCH, AD_PLYS, 2, 6 }, { AT_TUCH, AD_SLOW, 1, 6},
  1842.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1843.       WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN,
  1844.       MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1845.       M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID |
  1846.       M1_SEE_INVIS,
  1847.       M2_NOPOLY | M2_UNDEAD | M2_WANDER | M2_STALK | M2_HOSTILE,
  1848.       0, C(BLACK) },
  1849. /*    (major) Demons    */
  1850.     { "water demon", S_DEMON, 8, 12,-4, 30, -7, (G_NOCORPSE | G_NOGEN),
  1851.       { { AT_WEAP, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1852.         { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1853.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1854.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS | M1_SWIM,
  1855.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  1856.       0, C(BLUE) },
  1857.     /* standard demons & devils */
  1858.     { "horned devil", S_DEMON, 6, 9, -5, 50, 11, (G_HELL | G_NOCORPSE | 2),
  1859.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1860.         { AT_BITE, AD_PHYS, 2, 3 }, { AT_STNG, AD_PHYS, 1, 3 },
  1861.         NO_ATTK, NO_ATTK },
  1862.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1863.       MR_FIRE | MR_POISON, 0, M1_POIS | M1_THICK_HIDE,
  1864.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(BROWN) },
  1865. #ifdef SEDUCE
  1866.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1867.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1868.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK,
  1869.         NO_ATTK, NO_ATTK },
  1870.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1871.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1872.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE, 0, C(GRAY) },
  1873.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1874.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1875.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1876.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1877.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1878.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_MALE, 0, C(GRAY) },
  1879. #else
  1880.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1881.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1882.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1883.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1884.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY,
  1885.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE, 0, C(GRAY) },
  1886.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1887.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1888.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1889.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1890.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1891.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_MALE, 0, C(GRAY) },
  1892. #endif
  1893.     { "erinyes", S_DEMON, 7, 12, 2, 30, 10,
  1894.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1895.       { { AT_WEAP, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK,
  1896.         NO_ATTK, NO_ATTK, NO_ATTK },
  1897.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1898.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1899.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_FEMALE |
  1900.       M2_COLLECT, 0, C(RED) },
  1901.     { "barbed devil", S_DEMON, 8, 12, 0, 35, 8,
  1902.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1903.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1904.         { AT_STNG, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1905.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1906.       MR_FIRE | MR_POISON, 0, M1_POIS | M1_THICK_HIDE,
  1907.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1908.     { "marilith", S_DEMON, 7, 12, -6, 80, -12, (G_HELL | G_NOCORPSE | 1),
  1909.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1910.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1911.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 } },
  1912.       WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE,
  1913.       MR_FIRE | MR_POISON, 0,
  1914.       M1_HUMANOID | M1_SLITHY | M1_SEE_INVIS | M1_POIS,
  1915.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE | M2_COLLECT,
  1916.       0, C(RED) },
  1917.     { "vrock", S_DEMON, 8, 12, 0, 50, -9,
  1918.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1919.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1920.         { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
  1921.         { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK },
  1922.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1923.       MR_FIRE | MR_POISON, 0, M1_POIS,
  1924.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1925.     { "hezrou", S_DEMON, 9, 6, -2, 55, -10,
  1926.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1927.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1928.         { AT_BITE, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1929.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1930.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1931.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1932.     { "bone devil", S_DEMON, 9, 15, -1, 40, -9,
  1933.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1934.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_STNG, AD_DRST, 2, 4 },
  1935.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1936.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1937.       MR_FIRE | MR_POISON, 0, M1_POIS,
  1938.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  1939.       0, C(GRAY) },
  1940.     { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2),
  1941.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1942.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 },
  1943.         NO_ATTK, NO_ATTK },
  1944.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1945.       MR_FIRE | MR_COLD | MR_POISON, 0, M1_SEE_INVIS | M1_POIS,
  1946.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(WHITE) },
  1947.     { "nalfeshnee", S_DEMON, 11, 9, -1, 65, -11, (G_HELL | G_NOCORPSE | 1),
  1948.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1949.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1950.         NO_ATTK, NO_ATTK },
  1951.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1952.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1953.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1954.     { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2),
  1955.       { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 },
  1956.         { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1957.       WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE,
  1958.       MR_FIRE | MR_POISON, 0, M1_SEE_INVIS | M1_POIS,
  1959.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT, 0, C(RED) },
  1960.     { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1),
  1961.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  1962.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1963.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1964.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  1965.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  1966.       0, C(RED) },
  1967.     /* Named demon lords & princes plus Arch-Devils */
  1968.     { "Juiblex", S_DEMON, 50, 3, -7, 65, -15,
  1969.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1970.       { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 },
  1971.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1972.       1500, 0, 0, MS_GURGLE, MZ_LARGE,
  1973.       MR_FIRE | MR_POISON | MR_ACID | MR_STONE, 0,
  1974.       M1_AMPHIBIOUS | M1_AMORPHOUS | M1_NOHEAD | M1_FLY | M1_SEE_INVIS |
  1975.       M1_ACID | M1_POIS,
  1976.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY |
  1977.       M2_LORD | M2_MALE,
  1978.       M3_WAITFORU | M3_WANTSAMUL, C(BRIGHT_GREEN) },
  1979.     { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15,
  1980.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1981.       { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 },
  1982.         { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 },
  1983.         NO_ATTK, NO_ATTK },
  1984.       900, 500, 0, MS_ORC, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  1985.       M1_FLY | M1_SEE_INVIS | M1_POIS, M2_NOPOLY | M2_DEMON | M2_STALK |
  1986.       M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD | M2_MALE | M2_COLLECT,
  1987.       M3_WANTSAMUL, C(HI_LORD) },
  1988.     { "Orcus", S_DEMON, 66, 9, -6, 85, -20,
  1989.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1990.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1991.         { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1992.         { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK },
  1993.       1500, 500, 0, MS_ORC, MZ_HUGE,
  1994.       MR_FIRE | MR_POISON, 0,
  1995.       M1_FLY | M1_SEE_INVIS | M1_POIS, M2_NOPOLY | M2_DEMON | M2_STALK |
  1996.       M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE | M2_COLLECT,
  1997.       M3_WAITFORU | M3_WANTSBOOK | M3_WANTSAMUL, C(HI_LORD) },
  1998.     { "Geryon", S_DEMON, 72, 3, -3, 75, 15,
  1999.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2000.       { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 },
  2001.         { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2002.       1500, 500, 0, MS_BRIBE, MZ_HUGE,
  2003.       MR_FIRE | MR_POISON, 0,
  2004.       M1_FLY | M1_SEE_INVIS | M1_POIS | M1_SLITHY, M2_NOPOLY | M2_DEMON |
  2005.       M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE,
  2006.       M3_WANTSAMUL, C(HI_LORD) },
  2007.     { "Dispater", S_DEMON, 78, 15, -2, 80, 15,
  2008.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2009.       { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 },
  2010.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2011.       1500, 500, 0, MS_BRIBE, MZ_HUMAN,
  2012.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS |
  2013.       M1_HUMANOID, M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE |
  2014.       M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE | M2_COLLECT,
  2015.       M3_WANTSAMUL, C(HI_LORD) },
  2016.     { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20,
  2017.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2018.       { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 },
  2019.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2020.       1500, 500, 0, MS_BRIBE, MZ_LARGE,
  2021.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  2022.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY |
  2023.       M2_PRINCE | M2_MALE, M3_WANTSAMUL | M3_WAITFORU, C(HI_LORD) },
  2024.     { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20,
  2025.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2026.       { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 },
  2027.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2028.       1500, 500, 0, MS_BRIBE, MZ_HUGE,
  2029.       MR_FIRE | MR_COLD | MR_POISON, 0,
  2030.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS,
  2031.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG |
  2032.       M2_NASTY | M2_PRINCE | M2_MALE, M3_WANTSAMUL | M3_WAITFORU,
  2033.       C(HI_LORD) },
  2034.     { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20,
  2035.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2036.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 },
  2037.         { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 },
  2038.         NO_ATTK, NO_ATTK },
  2039.       1500, 500, 0, MS_GROWL, MZ_HUGE, MR_FIRE | MR_POISON, 0,
  2040.       M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS, M2_NOPOLY | M2_DEMON |
  2041.       M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE,
  2042.       M3_WANTSAMUL, C(HI_LORD) },
  2043.     { "Death", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2044.       { { AT_TUCH, AD_DETH, 8, 8 }, { AT_TUCH, AD_DETH, 8, 8 },
  2045.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2046.       WT_HUMAN, 0, 0, MS_RIDER, MZ_HUMAN,
  2047.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2048.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2049.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2050.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2051.       0, C(HI_LORD) },
  2052.     { "Pestilence", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2053.       { { AT_TUCH, AD_PEST, 8, 8 }, { AT_TUCH, AD_PEST, 8, 8 },
  2054.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2055.       WT_HUMAN, 0, 0, MS_RIDER, MZ_HUMAN,
  2056.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2057.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2058.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2059.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2060.       0, C(HI_LORD) },
  2061.     { "Famine", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2062.       { { AT_TUCH, AD_FAMN, 8, 8 }, { AT_TUCH, AD_FAMN, 8, 8 },
  2063.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2064.       WT_HUMAN, 0, 0, MS_RIDER, MZ_HUMAN,
  2065.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2066.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2067.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2068.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2069.       0, C(HI_LORD) },
  2070. #ifdef MAIL
  2071.     { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
  2072.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2073.       600, 300, 0, MS_SILENT, MZ_HUMAN,
  2074.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  2075.       M1_FLY | M1_SWIM | M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID |
  2076.       M1_POIS, M2_NOPOLY | M2_STALK | M2_PEACEFUL, 0, C(BRIGHT_BLUE) },
  2077. /* Neither rain nor sleet nor gloom of night shall stay this courier... */
  2078. #endif
  2079.     { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
  2080.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  2081.         NO_ATTK, NO_ATTK, NO_ATTK },
  2082.       1500, 400, 0, MS_DJINNI, MZ_HUMAN, MR_POISON | MR_STONE, 0,
  2083.       M1_HUMANOID | M1_FLY | M1_POIS,
  2084.       M2_NOPOLY | M2_STALK | M2_COLLECT, 0, C(YELLOW) },
  2085. /*    sea monsters        */
  2086.     { "giant eel", S_EEL, 5, 9, -1, 0, 0, (G_GENO | G_NOGEN),
  2087.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  2088.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2089.       200, 250, 0, MS_SILENT, MZ_HUGE,
  2090.       0, 0, M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY |
  2091.       M1_NOLIMBS | M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(CYAN) },
  2092.     { "electric eel", S_EEL, 7, 10, -3, 0, 0, (G_GENO | G_NOGEN),
  2093.       { { AT_BITE, AD_ELEC, 4, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  2094.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2095.       200, 250, 0, MS_SILENT, MZ_HUGE, MR_ELEC, MR_ELEC,
  2096.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS |
  2097.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  2098.     { "kraken", S_EEL, 20, 3, 6, 0, -3, (G_GENO | G_NOGEN),
  2099.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  2100.         { AT_HUGS, AD_WRAP, 2, 6 }, { AT_BITE, AD_PHYS, 5, 4 },
  2101.         NO_ATTK, NO_ATTK },
  2102.       1800, 1000, 0, MS_SILENT, MZ_HUGE, 0, 0,
  2103.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2104.       M2_NOPOLY | M2_HOSTILE | M2_STRONG, 0, C(RED) },
  2105. /*    lizards     */
  2106.     { "newt", S_LIZARD, 0, 6, 8, 0, 0, (G_GENO | 5),
  2107.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  2108.         NO_ATTK, NO_ATTK, NO_ATTK },
  2109.       10, 20, 0, MS_SILENT, MZ_TINY, 0, 0,
  2110.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2111.       M2_HOSTILE, 0, C(YELLOW) },
  2112.     { "gecko", S_LIZARD, 1, 6, 8, 0, 0, (G_GENO | 5),
  2113.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  2114.         NO_ATTK, NO_ATTK, NO_ATTK },
  2115.       10, 20, 0, MS_SQEEK, MZ_TINY, 0, 0,
  2116.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
  2117.     { "iguana", S_LIZARD, 2, 6, 7, 0, 0, (G_GENO | 5),
  2118.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  2119.         NO_ATTK, NO_ATTK, NO_ATTK },
  2120.       30, 30, 0, MS_SILENT, MZ_TINY, 0, 0,
  2121.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  2122.     { "baby crocodile", S_LIZARD, 3, 6, 7, 0, 0, G_GENO,
  2123.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  2124.         NO_ATTK, NO_ATTK, NO_ATTK },
  2125.       200, 200, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  2126.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2127.       M2_HOSTILE, 0, C(BROWN) },
  2128.     { "lizard", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 5),
  2129.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2130.         NO_ATTK, NO_ATTK, NO_ATTK },
  2131.       10, 40, 0, MS_SILENT, MZ_TINY, MR_STONE, MR_STONE,
  2132.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
  2133.     { "chameleon", S_LIZARD, 6, 5, 6, 10, 0, (G_GENO | 2),
  2134.       { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK,
  2135.         NO_ATTK, NO_ATTK, NO_ATTK },
  2136.       100, 100, 0, MS_SILENT, MZ_TINY,
  2137.       0, 0, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2138.       M2_NOPOLY | M2_HOSTILE, 0, C(BROWN) },
  2139.     { "crocodile", S_LIZARD, 6, 9, 5, 0, 0, (G_GENO | 1),
  2140.       { { AT_BITE, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 1, 12 },
  2141.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2142.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
  2143.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS |
  2144.       M1_OVIPAROUS | M1_CARNIVORE, M2_STRONG | M2_HOSTILE, 0, C(BROWN) },
  2145.  
  2146. /*    character classes */
  2147.     { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2148.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2149.         NO_ATTK, NO_ATTK, NO_ATTK },
  2150.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2151.       M1_HUMANOID | M1_TUNNEL | M1_NEEDPICK | M1_OMNIVORE,
  2152.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2153.     { "barbarian", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2154.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2155.         NO_ATTK, NO_ATTK, NO_ATTK },
  2156.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, MR_POISON,
  2157.       M1_HUMANOID | M1_OMNIVORE,
  2158.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2159.     { "caveman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  2160.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2161.         NO_ATTK, NO_ATTK, NO_ATTK },
  2162.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2163.       M1_HUMANOID | M1_OMNIVORE,
  2164.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT, 0,
  2165.       C(HI_DOMESTIC) },
  2166.     { "cavewoman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  2167.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2168.         NO_ATTK, NO_ATTK, NO_ATTK },
  2169.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2170.       M1_HUMANOID | M1_OMNIVORE,
  2171.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2172.       0, C(HI_DOMESTIC) },
  2173.     /* Note: players who are elves still get normal carrying capacity,
  2174.      * even though this is strictly speaking inconsistent.
  2175.      */
  2176.     { "elf", S_HUMAN, 1, 12, 10, 2, -3, G_NOGEN,
  2177.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2178.         NO_ATTK, NO_ATTK, NO_ATTK },
  2179.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2180.       M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS,
  2181.       M2_NOPOLY | M2_ELF | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2182.     { "healer", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2183.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2184.         NO_ATTK, NO_ATTK, NO_ATTK },
  2185.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, MR_POISON,
  2186.       M1_HUMANOID | M1_OMNIVORE,
  2187.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2188.     { "knight", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2189.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2190.         NO_ATTK, NO_ATTK, NO_ATTK },
  2191.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2192.       M1_HUMANOID | M1_OMNIVORE,
  2193.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2194.     { "priest", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  2195.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2196.         NO_ATTK, NO_ATTK, NO_ATTK },
  2197.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2198.       M1_HUMANOID | M1_OMNIVORE,
  2199.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT,
  2200.       0, C(HI_DOMESTIC) },
  2201.     { "priestess", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  2202.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2203.         NO_ATTK, NO_ATTK, NO_ATTK },
  2204.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2205.       M1_HUMANOID | M1_OMNIVORE,
  2206.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2207.       0, C(HI_DOMESTIC) },
  2208.     { "rogue", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  2209.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2210.         NO_ATTK, NO_ATTK, NO_ATTK },
  2211.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2212.       M1_HUMANOID | M1_OMNIVORE,
  2213.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  2214.       0, C(HI_DOMESTIC) },
  2215.     { "samurai", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2216.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2217.         NO_ATTK, NO_ATTK, NO_ATTK },
  2218.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2219.       M1_HUMANOID | M1_OMNIVORE,
  2220.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2221. #ifdef TOURIST
  2222.     { "tourist", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2223.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2224.         NO_ATTK, NO_ATTK, NO_ATTK },
  2225.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2226.       M1_HUMANOID | M1_OMNIVORE,
  2227.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2228. #endif
  2229.     { "valkyrie", S_HUMAN, 1, 10, 10, 1, -1, G_NOGEN,
  2230.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2231.         NO_ATTK, NO_ATTK, NO_ATTK },
  2232.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_COLD, MR_COLD,
  2233.       M1_HUMANOID | M1_OMNIVORE,
  2234.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2235.       0, C(HI_DOMESTIC) },
  2236.     { "wizard", S_HUMAN, 1, 10, 10, 3, 0, G_NOGEN,
  2237.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2238.         NO_ATTK, NO_ATTK, NO_ATTK },
  2239.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2240.       M1_HUMANOID | M1_OMNIVORE,
  2241.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT | M2_MAGIC,
  2242.       0, C(HI_DOMESTIC) },
  2243. #ifdef MULDGN
  2244.     { "Lord Carnarvon", S_HUMAN, 20, 12, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2245.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2246.         NO_ATTK, NO_ATTK, NO_ATTK },
  2247.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2248.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  2249.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2250.       M2_COLLECT | M2_MAGIC,
  2251.       M3_CLOSE, C(HI_LORD) },
  2252.     { "Pelias", S_HUMAN, 20, 12, 0, 30, 0, (G_NOGEN | G_UNIQ),
  2253.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2254.         NO_ATTK, NO_ATTK, NO_ATTK },
  2255.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_POISON, MR_POISON,
  2256.       M1_HUMANOID | M1_OMNIVORE,
  2257.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2258.       M2_COLLECT | M2_MAGIC,
  2259.       M3_CLOSE, C(HI_LORD) },
  2260.     { "Shaman Karnov", S_HUMAN, 20, 12, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2261.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2262.         NO_ATTK, NO_ATTK, NO_ATTK },
  2263.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2264.       M1_HUMANOID | M1_OMNIVORE,
  2265.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2266.       M2_COLLECT | M2_MAGIC,
  2267.       M3_CLOSE, C(HI_LORD) },
  2268.     /* Two for elves - one of each sex. */
  2269.     { "Earendil", S_HUMAN, 20, 15, 0, 50, -20, (G_NOGEN | G_UNIQ),
  2270.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2271.         NO_ATTK, NO_ATTK, NO_ATTK },
  2272.       WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2273.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2274.       M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG |
  2275.       M2_MALE | M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2276.     { "Elwing", S_HUMAN, 20, 15, 0, 50, -20, (G_NOGEN | G_UNIQ),
  2277.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2278.         NO_ATTK, NO_ATTK, NO_ATTK },
  2279.       WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2280.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2281.       M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG |
  2282.       M2_FEMALE | M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2283.     { "Hippocrates", S_HUMAN, 20, 12, 0, 40, 0, (G_NOGEN | G_UNIQ),
  2284.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2285.         NO_ATTK, NO_ATTK, NO_ATTK },
  2286.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_POISON, MR_POISON,
  2287.       M1_HUMANOID | M1_OMNIVORE,
  2288.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2289.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2290.     { "King Arthur", S_HUMAN, 20, 12, 0, 40, 20, (G_NOGEN | G_UNIQ),
  2291.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2292.         NO_ATTK, NO_ATTK, NO_ATTK },
  2293.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2294.       M1_HUMANOID | M1_OMNIVORE,
  2295.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2296.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2297.     { "Arch Priest", S_HUMAN, 25, 15, MARM(7,-3), 70, 0,
  2298.        (G_NOGEN | G_UNIQ),
  2299.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 2, 8 },
  2300.         { AT_MAGC, AD_CLRC, 2, 8 }, { AT_MAGC, AD_CLRC, 2, 8 },
  2301.         NO_ATTK, NO_ATTK },
  2302.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN,
  2303.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  2304.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  2305.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2306.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_NASTY |
  2307.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(WHITE) },
  2308.     { "Master of Thieves", S_HUMAN, 20, 15, 0, 30, -20, (G_NOGEN | G_UNIQ),
  2309.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  2310.         { AT_CLAW, AD_SAMU, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2311.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2312.       M1_HUMANOID | M1_OMNIVORE,
  2313.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2314.       M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  2315.       M3_CLOSE, C(HI_LORD) },
  2316.     { "Lord Sato", S_HUMAN, 20, 0, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2317.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2318.         NO_ATTK, NO_ATTK, NO_ATTK },
  2319.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2320.       M1_HUMANOID | M1_OMNIVORE,
  2321.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2322.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2323. #ifdef TOURIST
  2324.     { "Twoflower", S_HUMAN, 20, 10, 10, 20, 0, (G_NOGEN | G_UNIQ),
  2325.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK,
  2326.         NO_ATTK, NO_ATTK, NO_ATTK },
  2327.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2328.       M1_HUMANOID | M1_OMNIVORE,
  2329.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2330.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_DOMESTIC) },
  2331. #endif
  2332.     { "Norn", S_HUMAN, 20, 15, 0, 80, 0, (G_NOGEN | G_UNIQ),
  2333.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2334.         NO_ATTK, NO_ATTK, NO_ATTK },
  2335.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_COLD, MR_COLD,
  2336.       M1_HUMANOID | M1_OMNIVORE,
  2337.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_FEMALE |
  2338.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2339.     { "Wizard of Balance", S_HUMAN, 20, 12, 0, 60, 0, (G_NOGEN | G_UNIQ),
  2340.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2341.         NO_ATTK, NO_ATTK, NO_ATTK },
  2342.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2343.       M1_HUMANOID | M1_OMNIVORE,
  2344.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2345.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2346.  
  2347.     /* The nemesis monsters */
  2348.  
  2349.     { "Minion of Huhetol", S_DEMON, 16, 10, -2, 75, -14,
  2350.       (G_NOCORPSE | G_NOGEN | G_UNIQ),
  2351.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  2352.         { AT_MAGC, AD_SPEL, 0, 0 }, { AT_CLAW, AD_SAMU, 2, 6 },
  2353.         NO_ATTK, NO_ATTK },
  2354.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  2355.       M1_FLY | M1_SEE_INVIS | M1_POIS,
  2356.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY |
  2357.       M2_COLLECT, M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2358.     { "Thoth Amon", S_HUMAN, 16, 10, 0, 10, -14, (G_NOGEN | G_UNIQ),
  2359.       { { AT_MAGC, AD_SPEL, 0, 0 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2360.         { AT_WEAP, AD_PHYS, 1, 6 }, { AT_CLAW, AD_SAMU, 1, 4 },
  2361.         NO_ATTK, NO_ATTK },
  2362.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, MR_POISON, MR_POISON,
  2363.       M1_HUMANOID | M1_OMNIVORE,
  2364.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_STALK | M2_HOSTILE | M2_NASTY |
  2365.       M2_COLLECT | M2_MAGIC, M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2366.     { "Chromatic Dragon", S_DRAGON, 16, 10, 0, 30, -14, (G_NOGEN | G_UNIQ),
  2367.       { { AT_BREA, AD_RBRE, 6, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2368.         { AT_CLAW, AD_SAMU, 2, 8 }, { AT_BITE, AD_PHYS, 4, 8 },
  2369.         { AT_BITE, AD_PHYS, 4, 8 }, { AT_STNG, AD_PHYS, 1, 6 } },
  2370.       WT_DRAGON, 1700, 0, MS_NEMESIS, MZ_GIGANTIC,
  2371.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_POISON,
  2372.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_POISON,
  2373.       M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS | M1_POIS,
  2374.       M2_NOPOLY | M2_HOSTILE | M2_FEMALE | M2_PNAME | M2_STALK |
  2375.       M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  2376.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2377.     { "Goblin King", S_ORC, 15, 10, MARM(10,4), 0, -15, (G_NOGEN | G_UNIQ),
  2378.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  2379.         { AT_CLAW, AD_SAMU, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2380.       750, 350, 0, MS_NEMESIS, MZ_HUMAN, 0, 0, M1_HUMANOID | M1_OMNIVORE,
  2381.       M2_NOPOLY | M2_ORC | M2_HOSTILE | M2_STRONG | M2_STALK | M2_NASTY |
  2382.       M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  2383.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2384.     { "Cyclops", S_GIANT, 18, 10, 0, 0, -15, (G_NOGEN | G_UNIQ),
  2385.       { { AT_WEAP, AD_PHYS, 4, 8 }, { AT_WEAP, AD_PHYS, 4, 8 },
  2386.         { AT_CLAW, AD_SAMU, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2387.       1900, 700, 0, MS_NEMESIS, MZ_HUGE, 0, 0,
  2388.       M1_HUMANOID | M1_OMNIVORE,
  2389.       M2_NOPOLY | M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_STALK |
  2390.       M2_HOSTILE | M2_NASTY | M2_MALE | M2_JEWELS | M2_COLLECT,
  2391.       M3_WANTSARTI | M3_WAITFORU, C(GRAY) },
  2392.     { "Ixoth", S_DRAGON, 15, 9, -1, 20, -14, (G_NOGEN | G_UNIQ),
  2393.       { { AT_BREA, AD_FIRE, 8, 6 }, { AT_BITE, AD_PHYS, 4, 8 },
  2394.         { AT_MAGC, AD_SPEL, 0, 0 }, { AT_CLAW, AD_PHYS, 2, 4 },
  2395.         { AT_CLAW, AD_SAMU, 2, 4 }, NO_ATTK  },
  2396.       WT_DRAGON, 1600, 0, MS_NEMESIS, MZ_GIGANTIC, MR_FIRE, MR_FIRE,
  2397.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS,
  2398.       M2_NOPOLY | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY | M2_STALK |
  2399.       M2_GREEDY | M2_JEWELS | M2_MAGIC,
  2400.       M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2401.     { "Nalzok", S_DEMON, 16, 10, -2, 85, -127,
  2402.       (G_NOGEN | G_UNIQ | G_NOCORPSE),
  2403.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  2404.         { AT_MAGC, AD_SPEL, 0, 0 }, { AT_CLAW, AD_SAMU, 2, 6 },
  2405.         NO_ATTK, NO_ATTK },
  2406.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  2407.       M1_FLY | M1_SEE_INVIS | M1_POIS,
  2408.       M2_NOPOLY | M2_DEMON | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_STALK |
  2409.       M2_NASTY | M2_COLLECT, M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2410.     { "Master Assassin", S_HUMAN, 15, 15, 0, 30, 18, (G_NOGEN | G_UNIQ),
  2411.       { { AT_WEAP, AD_DRST, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 8 },
  2412.         { AT_CLAW, AD_SAMU, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2413.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2414.       M1_HUMANOID | M1_OMNIVORE,
  2415.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_HOSTILE | M2_STALK | M2_NASTY |
  2416.       M2_COLLECT | M2_MAGIC,
  2417.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2418.     /* A renegade daimyo who led a 13 year civil war against the shogun */
  2419.     /* of his time. */
  2420.     { "Ashikaga Takauji", S_HUMAN, 15, 15, 0, 40, -13, (G_NOGEN | G_UNIQ),
  2421.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  2422.         { AT_CLAW, AD_SAMU, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2423.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2424.       M1_HUMANOID | M1_OMNIVORE,
  2425.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_PNAME | M2_HOSTILE | M2_STALK |
  2426.       M2_NASTY | M2_MALE | M2_COLLECT | M2_MAGIC,
  2427.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2428.  
  2429. /*    NOTE: the Master of Thieves was defined above. */
  2430.  
  2431.     { "Lord Surtur", S_GIANT, 15, 12, 2, 50, 12, (G_NOGEN | G_UNIQ),
  2432.       { { AT_WEAP, AD_PHYS, 2, 10 }, { AT_WEAP, AD_PHYS, 2, 10 },
  2433.         { AT_CLAW, AD_SAMU, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2434.       2250, 850, 0, MS_NEMESIS, MZ_HUGE, MR_FIRE, MR_FIRE,
  2435.       M1_HUMANOID | M1_OMNIVORE,
  2436.       M2_NOPOLY | M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_STALK |
  2437.       M2_HOSTILE | M2_NASTY | M2_MALE | M2_PNAME | M2_COLLECT | M2_JEWELS,
  2438.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2439.     { "Dark One", S_HUMAN, 15, 10, 0, 80, -10, (G_NOGEN | G_UNIQ),
  2440.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2441.         { AT_WEAP, AD_PHYS, 1, 6 }, { AT_CLAW, AD_SAMU, 1, 4 },
  2442.         NO_ATTK, NO_ATTK },
  2443.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2444.       M1_HUMANOID | M1_OMNIVORE,
  2445.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_HOSTILE | M2_STALK | M2_NASTY |
  2446.       M2_COLLECT | M2_MAGIC,
  2447.       M3_WANTSARTI | M3_WAITFORU, C(BLACK) },
  2448.  
  2449. /*    The "guards" */
  2450.     { "student", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2451.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2452.         NO_ATTK, NO_ATTK, NO_ATTK },
  2453.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2454.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  2455.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2456.       0, C(HI_DOMESTIC) },
  2457.     { "chieftain", S_HUMAN, 5, 10, 10, 10, 0, G_NOGEN,
  2458.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2459.         NO_ATTK, NO_ATTK, NO_ATTK },
  2460.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, MR_POISON, MR_POISON,
  2461.       M1_HUMANOID | M1_OMNIVORE,
  2462.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2463.       0, C(HI_DOMESTIC) },
  2464.     { "neanderthal", S_HUMAN, 5, 10, 10, 10, 1, G_NOGEN,
  2465.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2466.         NO_ATTK, NO_ATTK, NO_ATTK },
  2467.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2468.       M1_HUMANOID | M1_OMNIVORE,
  2469.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2470.       0, C(HI_DOMESTIC) },
  2471.     { "High-elf", S_HUMAN, 5, 12, MARM(10,5), 10, -7, G_NOGEN,
  2472.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_MAGC, AD_CLRC, 0, 0 },
  2473.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2474.       WT_ELF, 350, 0, MS_GUARDIAN, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2475.       M1_HUMANOID | M1_OMNIVORE,
  2476.       M2_NOPOLY | M2_ELF | M2_PEACEFUL | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2477.     { "attendant", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2478.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2479.         NO_ATTK, NO_ATTK, NO_ATTK },
  2480.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, MR_POISON, MR_POISON,
  2481.       M1_HUMANOID | M1_OMNIVORE,
  2482.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2483.       0, C(HI_DOMESTIC) },
  2484.     { "page", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2485.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2486.         NO_ATTK, NO_ATTK, NO_ATTK },
  2487.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2488.       M1_HUMANOID | M1_OMNIVORE,
  2489.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2490.       0, C(HI_DOMESTIC) },
  2491.     { "acolyte", S_HUMAN, 5, 10, 10, 20, 0, G_NOGEN,
  2492.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_CLRC, 0, 0 },
  2493.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2494.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2495.       M1_HUMANOID | M1_OMNIVORE,
  2496.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2497.       0, C(HI_DOMESTIC) },
  2498.     { "thug", S_HUMAN, 5, 10, 10, 10, -3, G_NOGEN,
  2499.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2500.         NO_ATTK, NO_ATTK, NO_ATTK },
  2501.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2502.       M1_HUMANOID | M1_OMNIVORE,
  2503.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2504.       M2_GREEDY | M2_COLLECT,
  2505.       0, C(HI_DOMESTIC) },
  2506.     { "ninja", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2507.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2508.         NO_ATTK, NO_ATTK, NO_ATTK },
  2509.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2510.       M1_HUMANOID | M1_OMNIVORE,
  2511.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2512.       0, C(HI_DOMESTIC) },
  2513.     { "ronin", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2514.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2515.         NO_ATTK, NO_ATTK, NO_ATTK },
  2516.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2517.       M1_HUMANOID | M1_OMNIVORE,
  2518.       M2_NOPOLY | M2_HUMAN | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  2519.       0, C(HI_DOMESTIC) },
  2520. #ifdef TOURIST
  2521.     { "guide", S_HUMAN, 5, 10, 10, 20, 0, G_NOGEN,
  2522.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2523.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2524.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2525.       M1_HUMANOID | M1_OMNIVORE,
  2526.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2527.       M2_COLLECT | M2_MAGIC, 0, C(HI_DOMESTIC) },
  2528. #endif
  2529.     { "warrior", S_HUMAN, 5, 10, 10, 10, -1, G_NOGEN,
  2530.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2531.         NO_ATTK, NO_ATTK, NO_ATTK },
  2532.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2533.       M1_HUMANOID | M1_OMNIVORE,
  2534.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2535.       0, C(HI_DOMESTIC) },
  2536.     { "apprentice", S_HUMAN, 5, 10, 10, 30, 0, G_NOGEN,
  2537.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2538.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2539.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2540.       M1_HUMANOID | M1_OMNIVORE,
  2541.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2542.       M2_COLLECT | M2_MAGIC, 0, C(HI_DOMESTIC) },
  2543. #endif /* MULDGN /* */
  2544. /*    ARRAY TERMINATOR    */
  2545.     { "", 0, 0, 0, 0, 0, 0, 0,
  2546.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2547.       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, C(0) }
  2548. };
  2549. #endif /* !SPLITMON_1 */
  2550.  
  2551. #ifndef SPLITMON_1
  2552. /* dummy routine used to force linkage */
  2553. void
  2554. monst_init()
  2555. {
  2556.     return;
  2557. }
  2558. #endif
  2559.  
  2560. /*monst.c*/
  2561.